Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/loopTransform.cpp @ 14495:cd5d10655495
8027754: Enable loop optimizations for loops with MathExact inside
Reviewed-by: kvn, iveresov
author | rbackman |
---|---|
date | Thu, 23 Jan 2014 12:08:28 +0100 |
parents | abec000618bf |
children | 4ca6dc0799b6 |
comparison
equal
deleted
inserted
replaced
14494:5292439ef895 | 14495:cd5d10655495 |
---|---|
711 switch (n->Opcode()) { | 711 switch (n->Opcode()) { |
712 case Op_XorI: xors_in_loop++; break; // CRC32 java code | 712 case Op_XorI: xors_in_loop++; break; // CRC32 java code |
713 case Op_ModL: body_size += 30; break; | 713 case Op_ModL: body_size += 30; break; |
714 case Op_DivL: body_size += 30; break; | 714 case Op_DivL: body_size += 30; break; |
715 case Op_MulL: body_size += 10; break; | 715 case Op_MulL: body_size += 10; break; |
716 case Op_FlagsProj: | |
717 // Can't handle unrolling of loops containing | |
718 // nodes that generate a FlagsProj at the moment | |
719 return false; | |
720 case Op_StrComp: | 716 case Op_StrComp: |
721 case Op_StrEquals: | 717 case Op_StrEquals: |
722 case Op_StrIndexOf: | 718 case Op_StrIndexOf: |
723 case Op_EncodeISOArray: | 719 case Op_EncodeISOArray: |
724 case Op_AryEq: { | 720 case Op_AryEq: { |
778 } | 774 } |
779 if (bol->as_Bool()->_test._test == BoolTest::ne) | 775 if (bol->as_Bool()->_test._test == BoolTest::ne) |
780 continue; // not RC | 776 continue; // not RC |
781 | 777 |
782 Node *cmp = bol->in(1); | 778 Node *cmp = bol->in(1); |
783 if (cmp->is_FlagsProj()) { | |
784 continue; | |
785 } | |
786 | |
787 Node *rc_exp = cmp->in(1); | 779 Node *rc_exp = cmp->in(1); |
788 Node *limit = cmp->in(2); | 780 Node *limit = cmp->in(2); |
789 | 781 |
790 Node *limit_c = phase->get_ctrl(limit); | 782 Node *limit_c = phase->get_ctrl(limit); |
791 if( limit_c == phase->C->top() ) | 783 if( limit_c == phase->C->top() ) |