Mercurial > hg > graal-compiler
comparison src/share/vm/opto/escape.cpp @ 1136:4b84186a8248
6913075: EA identifies escape state incorrectly after 6895383 fix
Summary: EA incorrectly identifies escape state of an allocation passed as call argument.
Reviewed-by: never
author | kvn |
---|---|
date | Mon, 04 Jan 2010 15:21:09 -0800 |
parents | 7fee0a6cc6d4 |
children | c52275c698d1 |
comparison
equal
deleted
inserted
replaced
1135:e66fd840cb6b | 1136:4b84186a8248 |
---|---|
1914 const Type* at = d->field_at(i); | 1914 const Type* at = d->field_at(i); |
1915 int k = i - TypeFunc::Parms; | 1915 int k = i - TypeFunc::Parms; |
1916 Node *arg = call->in(i)->uncast(); | 1916 Node *arg = call->in(i)->uncast(); |
1917 | 1917 |
1918 if (at->isa_oopptr() != NULL && | 1918 if (at->isa_oopptr() != NULL && |
1919 ptnode_adr(arg->_idx)->escape_state() < PointsToNode::ArgEscape) { | 1919 ptnode_adr(arg->_idx)->escape_state() < PointsToNode::GlobalEscape) { |
1920 | 1920 |
1921 bool global_escapes = false; | 1921 bool global_escapes = false; |
1922 bool fields_escapes = false; | 1922 bool fields_escapes = false; |
1923 if (!call_analyzer->is_arg_stack(k)) { | 1923 if (!call_analyzer->is_arg_stack(k)) { |
1924 // The argument global escapes, mark everything it could point to | 1924 // The argument global escapes, mark everything it could point to |