comparison src/share/vm/opto/parse1.cpp @ 3345:bad7ecd0b6ed

5091921: Sign flip issues in loop optimizer Summary: Fix integer overflow problem in the code generated by loop optimizer. Reviewed-by: never
author kvn
date Wed, 04 May 2011 13:12:42 -0700
parents 1d1603768966
children 069ab3f976d3
comparison
equal deleted inserted replaced
3344:0139aac70fb5 3345:bad7ecd0b6ed
636 // Not all preds have been parsed. We must build phis everywhere. 636 // Not all preds have been parsed. We must build phis everywhere.
637 // (Note that dead locals do not get phis built, ever.) 637 // (Note that dead locals do not get phis built, ever.)
638 ensure_phis_everywhere(); 638 ensure_phis_everywhere();
639 639
640 if (block->is_SEL_head() && 640 if (block->is_SEL_head() &&
641 UseLoopPredicate) { 641 (UseLoopPredicate || LoopLimitCheck)) {
642 // Add predicate to single entry (not irreducible) loop head. 642 // Add predicate to single entry (not irreducible) loop head.
643 assert(!block->has_merged_backedge(), "only entry paths should be merged for now"); 643 assert(!block->has_merged_backedge(), "only entry paths should be merged for now");
644 // Need correct bci for predicate. 644 // Need correct bci for predicate.
645 // It is fine to set it here since do_one_block() will set it anyway. 645 // It is fine to set it here since do_one_block() will set it anyway.
646 set_parse_bci(block->start()); 646 set_parse_bci(block->start());