Mercurial > hg > graal-jvmci-8
comparison src/share/vm/c1/c1_IR.cpp @ 2007:5ddfcf4b079e
7003554: (tiered) assert(is_null_object() || handle() != NULL) failed: cannot embed null pointer
Summary: C1 with profiling doesn't check whether the MDO has been really allocated, which can silently fail if the perm gen is full. The solution is to check if the allocation failed and bailout out of inlining or compilation.
Reviewed-by: kvn, never
author | iveresov |
---|---|
date | Thu, 02 Dec 2010 17:21:12 -0800 |
parents | f95d63e2154a |
children | 701a83c86f28 |
comparison
equal
deleted
inserted
replaced
2006:bbefa3ca1543 | 2007:5ddfcf4b079e |
---|---|
502 | 502 |
503 init_visited(); | 503 init_visited(); |
504 count_edges(start_block, NULL); | 504 count_edges(start_block, NULL); |
505 | 505 |
506 if (compilation()->is_profiling()) { | 506 if (compilation()->is_profiling()) { |
507 compilation()->method()->method_data()->set_compilation_stats(_num_loops, _num_blocks); | 507 ciMethod *method = compilation()->method(); |
508 if (!method->is_accessor()) { | |
509 ciMethodData* md = method->method_data_or_null(); | |
510 assert(md != NULL, "Sanity"); | |
511 md->set_compilation_stats(_num_loops, _num_blocks); | |
512 } | |
508 } | 513 } |
509 | 514 |
510 if (_num_loops > 0) { | 515 if (_num_loops > 0) { |
511 mark_loops(); | 516 mark_loops(); |
512 clear_non_natural_loops(start_block); | 517 clear_non_natural_loops(start_block); |