Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8275330: C2: assert(n->is_Root() || n->is_Region() || n->is_Phi() || n->is_MachMerge() || def_block->dominates(block)) failed: uses must be dominated by definitions #1002

Closed
wants to merge 1 commit into from

Conversation

rwestrel
Copy link
Contributor

@rwestrel rwestrel commented Apr 5, 2022

Id like to backport this because:

  • it helps for the backport of 8280799 (С2: assert(false) failed: cyclic dependency prevents range check elimination) that we've encountered with 11
  • while I can't reproduce the failure with 11, I see no reason the bug wouldn't exit in 11 as well (so not critical for 11 but nice to have)

The patch doesn't apply cleanly. Part of it is due to context changes. The rest is the changes in macro.cpp and opaquenode.[ch]pp that I dropped: the reason for this group of changes was to delay removal of Opaque4 nodes but 11 doesn't have the same logic as later releases and already removes Opaque4 nodes as late as possible.

I tested this with tier1 and some compile the world/fuzzer tests.


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Issue

  • JDK-8275330: C2: assert(n->is_Root() || n->is_Region() || n->is_Phi() || n->is_MachMerge() || def_block->dominates(block)) failed: uses must be dominated by definitions

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk11u-dev pull/1002/head:pull/1002
$ git checkout pull/1002

Update a local copy of the PR:
$ git checkout pull/1002
$ git pull https://git.openjdk.java.net/jdk11u-dev pull/1002/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 1002

View PR using the GUI difftool:
$ git pr show -t 1002

Using diff file

Download this PR as a diff file:
https://git.openjdk.java.net/jdk11u-dev/pull/1002.diff

@bridgekeeper
Copy link

bridgekeeper bot commented Apr 5, 2022

👋 Welcome back roland! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk openjdk bot changed the title Backport 3e798dd40c68439f3220445e679b9e0e495435d8 8275330: C2: assert(n->is_Root() || n->is_Region() || n->is_Phi() || n->is_MachMerge() || def_block->dominates(block)) failed: uses must be dominated by definitions Apr 5, 2022
@openjdk
Copy link

openjdk bot commented Apr 5, 2022

This backport pull request has now been updated with issue from the original commit.

@openjdk openjdk bot added backport rfr labels Apr 5, 2022
@mlbridge
Copy link

mlbridge bot commented Apr 5, 2022

Webrevs

Copy link
Contributor

@TheRealMDoerr TheRealMDoerr left a comment

I think the Opaque4 related parts are not required for the correctness of this backport. So, it makes sense to me that you have omitted them. Rest looks good and our nightly tests have passed.

@openjdk
Copy link

openjdk bot commented Apr 7, 2022

@rwestrel This change now passes all automated pre-integration checks.

After integration, the commit message for the final commit will be:

8275330: C2:  assert(n->is_Root() || n->is_Region() || n->is_Phi() || n->is_MachMerge() || def_block->dominates(block)) failed: uses must be dominated by definitions

Reviewed-by: mdoerr

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 39 new commits pushed to the master branch:

  • 5a66c8e: 8283408: Fix a C2 crash when filling arrays with unsafe
  • 5d1718f: 8283451: C2: assert(_base == Long) failed: Not a Long
  • 1f011cb: 8272493: Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2
  • 6aa09f0: 8282312: Minor corrections to evbroadcasti32x4 intrinsic on x86
  • 3e833fb: 8282172: CompileBroker::log_metaspace_failure is called from non-Java/compiler threads
  • b271964: 8271055: Crash during deoptimization with "assert(bb->is_reachable()) failed: getting result from unreachable basicblock" with -XX:+VerifyStack
  • 67c4882: 8265297: javax/net/ssl/SSLSession/TestEnabledProtocols.java failed with "RuntimeException: java.net.SocketException: Connection reset"
  • 6cc8d69: 8229210: [TESTBUG] Move gc stress tests from JFR directory tree to gc/stress
  • b6f59f5: 8273655: content-types.properties files are missing some common types
  • b9d0a03: 8283350: (tz) Update Timezone Data to 2022a
  • ... and 29 more: https://git.openjdk.java.net/jdk11u-dev/compare/156c486e920b1ca406064dd189562b830990f7f9...master

As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready label Apr 7, 2022
@rwestrel
Copy link
Contributor Author

rwestrel commented Apr 7, 2022

I think the Opaque4 related parts are not required for the correctness of this backport. So, it makes sense to me that you have omitted them. Rest looks good and our nightly tests have passed.

Thanks for reviewing!

@rwestrel
Copy link
Contributor Author

rwestrel commented Apr 11, 2022

/integrate

@openjdk
Copy link

openjdk bot commented Apr 11, 2022

Going to push as commit 4741ab5.
Since your change was applied there have been 46 commits pushed to the master branch:

  • 2da50ce: 8283217: Leak FcObjectSet in getFontConfigLocations() in fontpath.c
  • b9a4153: 8284369: TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4
  • 811cc9f: 8284573: [11u] ProblemList TestBubbleUpRef.java and TestGCOldWithCMS.java because of 8272195
  • e89b698: 8244602: Add JTREG_REPEAT_COUNT to repeat execution of a test
  • 7a02166: 8242312: use reproducible random in hotspot gc tests
  • e8fbaad: 8283641: Large value for CompileThresholdScaling causes assert
  • aeeab3d: 8280373: Update Xalan serializer / SystemIDResolver to align with JDK-8270492
  • 5a66c8e: 8283408: Fix a C2 crash when filling arrays with unsafe
  • 5d1718f: 8283451: C2: assert(_base == Long) failed: Not a Long
  • 1f011cb: 8272493: Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2
  • ... and 36 more: https://git.openjdk.java.net/jdk11u-dev/compare/156c486e920b1ca406064dd189562b830990f7f9...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated label Apr 11, 2022
@openjdk openjdk bot closed this Apr 11, 2022
@openjdk openjdk bot removed ready rfr labels Apr 11, 2022
@openjdk
Copy link

openjdk bot commented Apr 11, 2022

@rwestrel Pushed as commit 4741ab5.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport integrated
2 participants