just return false if it does not apply to you
Sun

On Tue, Jul 12, 2011 at 9:25 AM, Gang Yu <yugang...@gmail.com> wrote:
> Thx, Sun.
>
> Since "Is_Target_SSE41()" is quite a target-specific name, we are not sure
> of the original author's intension. If this part is sure of a
> target-independent design, we can take this job and we should make a general
> name for it.
>
> Thanks
>
> Gang
>
>
> On Mon, Jul 11, 2011 at 8:57 PM, Sun Chan <sun.c...@gmail.com> wrote:
>>
>> Thx to Gang for pointing out the regression due to v3681 checkin. Here
>> is my suggestion:
>> There are multiple ways to fix the regression that will be seen in
>> other target builds:
>> 1. Fix based on existing infrastructure:
>>    Each target must add the corresponding function Is_Target_SSE41()
>> in the corresponding config_targ.h
>> I agree with Gang that this fix is not desirable since it continues
>> the practice that will cause target dependent build breaks easily and
>> the burden lies with the receiving party, not whoever making the
>> change.
>> 2. Fix that could start a better change to open64 in the longer run:
>>    Define a target independent Is_Target_SSE41() that will return
>> "false" for all targets, and in the one that matters, return result
>> appropriately.
>>    One can do this in one of the following two ways I can think of:
>>    a. define the function with template, and let the "target"
>> specialize that accordingly. This is standard template implementation
>>    b. define the generic version as weak, and let the "target"
>> version that the implementor cares about to return the desired result
>> as "strong". This is the implementation most libraries (like libc)
>> use.
>>
>> Now, can I get some volunteer to go about implementing this?
>>
>> Sun
>>
>> On Fri, Jul 8, 2011 at 4:24 PM, Gang Yu <yugang...@gmail.com> wrote:
>> > Hi,
>> >
>> >    SL target builds fail today due to the LNO check-in v3681, the build
>> > fail
>> > comes from the patch:
>> >
>> > Index: config_lno.cxx
>> > ===================================================================
>> > --- config_lno.cxx      (revision 3643)
>> > +++ config_lno.cxx      (revision 3681)
>> > @@ -1224,5 +1227,12 @@
>> >                         Mhd_Options.L[i].TLB_Miss_Penalty;
>> >      }
>> >    }
>> > +
>> > +  /* Value of 1 for LNO_Iter_threshold is interpreted as default in
>> > which
>> > case
>> > +     the flag is set based on target. Otherwise use user-specified
>> > value.
>> > +   */
>> > +  if(LNO_Iter_threshold == 1) {
>> > +    LNO_Iter_threshold = (Is_Target_SSE41())? 8 : 0;
>> > +  }
>> >  }
>> > Index: /home/yugang/trunk/trunk/osprey/be/cg/whirl2ops.cxx
>> > ===================================================================
>> > --- /home/yugang/trunk/trunk/osprey/be/cg/whirl2ops.cxx (revision 3666)
>> > +++ /home/yugang/trunk/trunk/osprey/be/cg/whirl2ops.cxx (revision 3681)
>> > @@ -3166,9 +3166,18 @@
>> >    WN   *compare;
>> >    VARIANT variant;
>> >
>> > +  if (opcode == OPC_V16I1V16I1SELECT) {
>> > +    TN* op1 = Expand_Expr(WN_kid0(select), select, NULL);
>> > +    TN* op2 = Expand_Expr(WN_kid1(select), select, NULL);
>> > +    TN* op3 = Expand_Expr(WN_kid2(select), select, NULL);
>> >
>> > +    if (result == NULL)
>> > +      result = Allocate_Result_TN (select, NULL);
>> > +
>> > +    Expand_Select(result, op1, op2, op3, MTYPE_V16I1, FALSE, &New_OPs);
>> > //FALSE passed as dummy arg
>> > +    return result;
>> > +  }
>> >
>> > the "Is_Target_SSE41()", "OPC_V16I1V16I1SELECT" and "MTYPE_V16I1" are
>> > specific to X86 targets, these patches will cause other targets fail,
>> >
>> > The suggest patche is:
>> > Index: config_lno.cxx
>> > ===================================================================
>> > --- config_lno.cxx      (revision 3681)
>> > +++ config_lno.cxx      (working copy)
>> > @@ -1228,11 +1228,13 @@
>> >      }
>> >    }
>> >
>> > +#ifdef TARG_X8664
>> >    /* Value of 1 for LNO_Iter_threshold is interpreted as default in
>> > which
>> > case
>> >       the flag is set based on target. Otherwise use user-specified
>> > value.
>> >     */
>> >    if(LNO_Iter_threshold == 1) {
>> >      LNO_Iter_threshold = (Is_Target_SSE41())? 8 : 0;
>> >    }
>> > +#endif
>> >  }
>> >
>> > Index: ../../be/cg/whirl2ops.cxx
>> > ===================================================================
>> > --- ../../be/cg/whirl2ops.cxx   (revision 3681)
>> > +++ ../../be/cg/whirl2ops.cxx   (working copy)
>> > @@ -3166,6 +3166,7 @@
>> >    WN   *compare;
>> >    VARIANT variant;
>> >
>> > +#ifdef TARG_X8664
>> >    if (opcode == OPC_V16I1V16I1SELECT) {
>> >      TN* op1 = Expand_Expr(WN_kid0(select), select, NULL);
>> >      TN* op2 = Expand_Expr(WN_kid1(select), select, NULL);
>> > @@ -3177,6 +3178,7 @@
>> >      Expand_Select(result, op1, op2, op3, MTYPE_V16I1, FALSE, &New_OPs);
>> > //FALSE passed as dummy arg
>> >      return result;
>> >    }
>> > +#endif
>> >
>> >
>> >
>> > Would a gatekeeper help a review?
>> >
>> > Thanks
>> >
>> >
>> > Gang
>> >
>> >
>> > ------------------------------------------------------------------------------
>> > All of the data generated in your IT infrastructure is seriously
>> > valuable.
>> > Why? It contains a definitive record of 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-d2d-c2
>> > _______________________________________________
>> > Open64-devel mailing list
>> > Open64-devel@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/open64-devel
>> >
>> >
>
>

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of 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-d2d-c2
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to