Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openj9
Path: blob/master/doc/compiler/il/IL_FAQ.md
6000 views

Overview

This is a work in progress FAQ to capture questions and answers on TR's IL. New entries will be added as questions are identified in issues, code reviews, etc. Over time this will become a comprehensive overview of TR IL.

Do monenter & monexit trees have to be anchored to a 'treetop'?

Detailed question:

From issue 475: A log of java/lang/StringBuffer.length()I shows:

n13n monent jitMethodMonitorEntry[#178 helper Method] n18n ==>aRegLoad ... n10n treetop n9n monexit jitMethodMonitorExit[#33 helper Method] n18n ==>aRegLoad

Is there a reason for this asymmetry between monent and monexit? Are there cases where monexit is not under a treetop?

Answer:

Both monenter & monexit can be at the top level. They are also allowed to be under a treetop as well. They may show up under a treetop when they are under a NULLCHK that gets replaced by a treetop.