looks good to me
Sun

On Mon, Dec 5, 2011 at 5:25 PM, Gang Yu <yugang...@gmail.com> wrote:

> Hi,
>
>    Could a gatekeeper please help review the fix for bug903(
> https://bugs.open64.net/show_bug.cgi?id=903)?
>
> bug910 is a duplication of this bug, since it is a little complex on the
> source code, I will not show full source code, only IR snippet.
>
> bug assertion:
>
> Signal: Segmentation fault in CFLOW (third pass) phase.
> Error: Signal Segmentation fault in phase CFLOW (third pass) -- processing
> aborted
> This is a ebo related bug, special to x86 target. r3314 introduced test8
> and test16 ops to x86 target and the EBO process, changes some of the
> higher bit test to test8 and test 16
>
> in bug903,
> BB16:
> [  45, 0] TN33(%rflags) :- cmp32 TN181 TN182 ;
> [  45, 0] TN184 :- setge TN33(%rflags) ;
> [  45, 0] TN183 :- movzbl TN184 ;
> [  45, 0] TN186 :- ldc64 (sym:.data+32) ;
> [  45, 0] TN187 :- ldc32 (0x0) ;
> [  45, 0] TN189 :- movzlq TN187 ;
> [  45, 0] TN190 :- shli64 TN189 (0x2) ;
> [  45, 0] TN191 :- add64 TN186 TN190 ;
> [  45, 0] TN185 :- ld32 TN191 (0x0) ; WN id:58 g_4+0x0
> [  45, 0] TN192 :- and32 TN183 TN185 ;
> [  45, 0] TN33(%rflags) :- test32 TN192 TN192 ;
> [  45, 0] :- je TN33(%rflags) (lab:.Lt_1_2818) ;
> is ebo optimised to
> [  45, 0] TN33(%rflags) :- cmp32 TN181 TN182 ;
> [  45, 0] TN184 :- setge TN33(%rflags) ;
> [   0, 0] GTN187 :- zero32 ;
> [  45, 0] TN189 :- movzlq GTN187 ;
> [  45, 0] TN33(%rflags) :- testxxx8 TN184 TN189 (0x4) (sym:.data+32) ;
> [  45, 0] :- jne TN33(%rflags) (lab:.Lt_1_2562) ;
> however, the introduced testxxx8 does not have change_rflags propertie,
> this lead the:
>
> cgtarget.cxx
> 1983  for( OP* op = OP_prev(br); op != NULL; op = OP_prev(op) ){
> 1984    if( TOP_is_change_rflags( OP_code(op) ) ){
> 1985      cmp_op = op;
> 1986      break;
> 1987    }
> 1988  }
> unable to find the right cmp_op(testxxx8), which then either segment
> fault(bug903) or assert(bug910).
>
> Suggested patch, add change_rflags propertie for testxxx:
> --- a/osprey/common/targ_info/isa/x8664/isa_properties.cxx
> +++ b/osprey/common/targ_info/isa/x8664/isa_properties.cxx
> @@ -577,15 +577,19 @@ int main()
>                      TOP_test8,
>                      TOP_testx8,
>                      TOP_testxx8,
> +                   TOP_testxxx8,
>                      TOP_test16,
>                      TOP_testx16,
>                      TOP_testxx16,
> +                   TOP_testxxx16,
>                      TOP_test32,
>                      TOP_testx32,
>                      TOP_testxx32,
> +                   TOP_testxxx32,
>                      TOP_test64,
>                      TOP_testx64,
>                      TOP_testxx64,
> +                   TOP_testxxx64,
>                      TOP_testi8,
>                      TOP_testi16,
>                      TOP_testi32,
> Thanks
> Regards
> Gang
>
>
> ------------------------------------------------------------------------------
> All the data continuously generated in your IT infrastructure
> contains a definitive record of customers, application performance,
> security threats, fraudulent activity, and more. Splunk takes this
> data and makes sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-novd2d
> _______________________________________________
> Open64-devel mailing list
> Open64-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/open64-devel
>
>
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to