Mercurial > hg > truffle
diff src/share/vm/ci/ciMethodData.hpp @ 12966:b2ee5dc63353
8024070: C2 needs some form of type speculation
Summary: record unused type profile information with type system, propagate and use it.
Reviewed-by: kvn, twisti
author | roland |
---|---|
date | Wed, 23 Oct 2013 12:40:23 +0200 |
parents | 5ccbab1c69f3 |
children | 6e1826d5c23e |
line wrap: on
line diff
--- a/src/share/vm/ci/ciMethodData.hpp Wed Oct 23 10:00:39 2013 +0200 +++ b/src/share/vm/ci/ciMethodData.hpp Wed Oct 23 12:40:23 2013 +0200 @@ -100,6 +100,10 @@ return valid_ciklass(type(i)); } + bool maybe_null(int i) const { + return was_null_seen(type(i)); + } + #ifndef PRODUCT void print_data_on(outputStream* st) const; #endif @@ -113,6 +117,10 @@ return valid_ciklass(type()); } + bool maybe_null() const { + return was_null_seen(type()); + } + #ifndef PRODUCT void print_data_on(outputStream* st) const; #endif @@ -154,6 +162,14 @@ return ret()->valid_type(); } + bool argument_maybe_null(int i) const { + return args()->maybe_null(i); + } + + bool return_maybe_null() const { + return ret()->maybe_null(); + } + #ifndef PRODUCT void print_data_on(outputStream* st) const; #endif @@ -260,6 +276,14 @@ return ret()->valid_type(); } + bool argument_maybe_null(int i) const { + return args()->maybe_null(i); + } + + bool return_maybe_null() const { + return ret()->maybe_null(); + } + #ifndef PRODUCT void print_data_on(outputStream* st) const; #endif @@ -305,6 +329,10 @@ return parameters()->valid_type(i); } + bool parameter_maybe_null(int i) const { + return parameters()->maybe_null(i); + } + #ifndef PRODUCT void print_data_on(outputStream* st) const; #endif