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