United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6493180 C2 Error: SoftMatchFailure is not allowed
JDK-6493180 : C2 Error: SoftMatchFailure is not allowed

Details
Type:
Bug
Submit Date:
2006-11-13
Status:
Resolved
Updated Date:
2010-04-03
Project Name:
JDK
Resolved Date:
2006-12-02
Component:
hotspot
OS:
solaris_9
Sub-Component:
compiler
CPU:
sparc
Priority:
P3
Resolution:
Fixed
Affected Versions:
7
Fixed Versions:
hs10 (b03)

Related Reports
Backport:
Backport:
Relates:

Sub Tasks

Description
C2 failed the next test on all platforms after the putback:

20061017011246.steved.escape_analysis1_ws

test: nsk/regression/b4755490

foundation% !g
gamma -cp /net/gtee.sfbay/export/gtee2.0/suites/6.0/vm/bin/classes -Xcomp -XX:Co
mpileThreshold=100 b4755490
VM option 'CompileThreshold=100'
No matching rule for:
--N: o398       Binary  === _ o99 o100  [[o181  57 ]]
_Binary_eRegL_eRegL  360  _Binary_eRegL_eRegL
_Binary_eADXRegL_eBCXRegL  360  _Binary_eADXRegL_eBCXRegL

   --N: o99     ConL    === o0  [[o414 o415 o398 o413 o412 o411 o410 o409 o408 o
407 o406 o405 o404 o403 o402 o401 o400 o399 ]]  #long:1
   IMML  20  IMML
   IMML_127  10  IMML_127
   IMML32  20  IMML32
   EREGL  200  loadConL
   EADXREGL  200  loadConL
   EBCXREGL  200  loadConL
   EADXREGL_LOW_ONLY  270  loadConL_low_only
   STACKSLOTL  400  storeSSL

   --N: o100    ConL    === o0  [[o414 o415 o398 o413 o412 o411 o410 o409 o408 o
407 o406 o405 o404 o403 o402 o401 o400 o399 ]]  #long:0
   IMML  20  IMML
   IMML0  10  IMML0
   IMML_127  10  IMML_127
   IMML32  20  IMML32
   EREGL  160  loadConL0
   EADXREGL  160  loadConL0
   EBCXREGL  160  loadConL0
   EADXREGL_LOW_ONLY  270  loadConL_low_only
   STACKSLOTL  360  storeSSL

# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/matcher.hpp:359
#
# An unexpected error has been detected by Java Runtime Environment:
#
#  Internal Error (/net/prt-solx86-q1-2/PrtBuildDir/workspace/src/share/vm/opto/matcher.hpp, 359), pid=26277, tid=11
#
# Java VM: Java HotSpot(TM) Server VM (20061017011246.steved.escape_analysis1_ws-debug compiled mode)
#
# Error: SoftMatchFailure is not allowed except in product
# An error report file with more information is saved as hs_err_pid26277.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
Current thread is 11
Dumping core ...
Abort


[t@32 l@34]: print n->dump(2)
o99     ConL    === o0  [[o415 o416 o399 o414 o413 o412 o411 o410 o409 o408 o407 o406 o405 o404 o403 o402 o401 o400 ]]  #long:1
o100    ConL    === o0  [[o415 o416 o399 o414 o413 o412 o411 o410 o409 o408 o407 o406 o405 o404 o403 o402 o401 o400 ]]  #long:0
o399    Binary  === _ o99 o100  [[o182  58 ]]

[t@32 l@34]: print n->dump(-2)
o399    Binary  === _ o99 o100  [[o182  58 ]]
o182    StoreLConditional       === o190 o185 o284 o399  [[o181  57 ]]
 58     StoreLConditional       ===  49  59  60 o399  [[]]  !jvms: b4755490::run @ bci:22

[t@32 l@34]: where
  [1] report_fatal(file_name = 0xfef7cfcf "/net/jaberwocky/export/home2/work/6488532/src/share/vm/opto/matcher.hpp", line_no = 359, message = 0xfef7d017 "SoftMatchFailure is not allowed except in product"), line 214 in "/net/jaberwocky/export/home2/work/6488532/src/share/vm/utilities/debug.cpp"
  [2] Matcher::soft_match_failure(), line 359 in "/net/jaberwocky/export/home2/work/6488532/src/share/vm/opto/matcher.hpp"
  [3] Matcher::match_tree(this = 0xb5500740, n = 0x138408), line 1105 in "/net/jaberwocky/export/home2/work/6488532/src/share/vm/opto/matcher.cpp"
  [4] Matcher::xform(this = 0xb5500740, n = 0x138408, max_stack = 417), line 753 in "/net/jaberwocky/export/home2/work/6488532/src/share/vm/opto/matcher.cpp"
  [5] Matcher::match(this = 0xb5500740), line 251 in "/net/jaberwocky/export/home2/work/6488532/src/share/vm/opto/matcher.cpp"
  [6] Compile::Code_Gen(this = 0xb5501188), line 1463 in "/net/jaberwocky/export/home2/work/6488532/src/share/vm/opto/compile.cpp"
  [7] Compile::Compile(this = 0xb5501188, ci_env = 0xb5501744, compiler = 0x2d3428, target = 0x5c87c0, osr_bci = 7, subsume_loads = true), line 512 in "/net/jaberwocky/export/home2/work/6488532/src/share/vm/opto/compile.cpp"
  [8] C2Compiler::compile_method(this = 0x2d3428, env = 0xb5501744, target = 0x5c87c0, entry_bci = 7), line 28 in "/net/jaberwocky/export/home2/work/6488532/src/share/vm/opto/c2compiler.cpp"
  [9] CompileBroker::invoke_compiler_on_method(task = 0x2eecd8), line 1535 in "/net/jaberwocky/export/home2/work/6488532/src/share/vm/compiler/compileBroker.cpp"
  [10] CompileBroker::compiler_thread_loop(), line 1387 in "/net/jaberwocky/export/home2/work/6488532/src/share/vm/compiler/compileBroker.cpp"
  [11] compiler_thread_entry(thread = 0x2eb000, __the_thread__ = 0x2eb000), line

                                    

Comments
SUGGESTED FIX

Make StoreLConditionalNode class as subclass of LoadStoreNode class.
                                     
2006-11-14
EVALUATION

In the changes for 6474965 StoreLConditionalNode class was not modified to be
the subclass of LoadStoreNode class (the same way as StorePConditionalNode was done).
The method ideal_reg() was moved to LoadStoreNode class leaving StoreLConditionalNode 
with default Node::ideal_reg() {return 0;}.

In matcher during call find_shared() the method ideal_reg() is used to check 
unmatchable nodes. This is why matcher doesn't match StoreLConditionalNode.
                                     
2006-11-14
SUGGESTED FIX

Webrev:                 http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2006/20061114103955.kvn.6493180/workspace/webrevs/webrev-2006.11.14/index.html
                                     
2006-11-15



Hardware and Software, Engineered to Work Together