aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/opto/graphKit.cpp
diff options
context:
space:
mode:
authorkvn <none@none>2011-05-04 13:12:42 -0700
committerkvn <none@none>2011-05-04 13:12:42 -0700
commit8e4328589a700f8cadab8f9b7d73ab75ae54b7f3 (patch)
tree4b85e785d497487fbf8f4bad6403f55b2cd164af /src/share/vm/opto/graphKit.cpp
parent2823a5be160d9d71d9d8672d2eddf04348661112 (diff)
5091921: Sign flip issues in loop optimizer
Summary: Fix integer overflow problem in the code generated by loop optimizer. Reviewed-by: never
Diffstat (limited to 'src/share/vm/opto/graphKit.cpp')
-rw-r--r--src/share/vm/opto/graphKit.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/share/vm/opto/graphKit.cpp b/src/share/vm/opto/graphKit.cpp
index b1ed1edbc..db6125896 100644
--- a/src/share/vm/opto/graphKit.cpp
+++ b/src/share/vm/opto/graphKit.cpp
@@ -3378,6 +3378,10 @@ void GraphKit::add_predicate(int nargs) {
if (UseLoopPredicate) {
add_predicate_impl(Deoptimization::Reason_predicate, nargs);
}
+ // loop's limit check predicate should be near the loop.
+ if (LoopLimitCheck) {
+ add_predicate_impl(Deoptimization::Reason_loop_limit_check, nargs);
+ }
}
//----------------------------- store barriers ----------------------------