On 2023-08-29 06:54  Jeff Law <jeffreya...@gmail.com> wrote:
>
>
>
>On 8/28/23 01:47, Fei Gao wrote:
>> no functional changes but allow targets to check shrink-wrap-separate 
>> enabled or not.
>>
>>    gcc/ChangeLog:
>>
>>          * shrink-wrap.cc (try_shrink_wrapping_separate):call
>>            use_shrink_wrapping_separate.
>>          (use_shrink_wrapping_separate): wrap the condition
>>            check in use_shrink_wrapping_separate.
>>          * shrink-wrap.h (use_shrink_wrapping_separate): add to extern
>So as I mentioned earlier today in the older thread, can we use
>override_options to do this?
>
>If we look at aarch64_override_options we have this:
>
>   /* The pass to insert speculation tracking runs before
>      shrink-wrapping and the latter does not know how to update the
>      tracking status.  So disable it in this case.  */
>   if (aarch64_track_speculation)
>     flag_shrink_wrap = 0;
>
>We kind of want this instead
>
>   if (flag_shrink_wrap)
>     {
>       turn off whatever target bits enable the cm.push/cm.pop insns
>     }
>
>
>This does imply that we have a distinct target flag to enable/disable
>those instructions.  But that seems like a good thing to have anyway. 
I'm afraid we cannot simply resolve the confilict based on 
flag_shrink_wrap/flag_shrink_wrap_separate only, as they're set true from -O1 
onwards,
which means zcmp is disabled almostly unless 
-fno-shrink-warp/-fno-shrink-warp-separate
are explictly given. 

So after discussion with Kito, we would like to turn on zcmp for -Os and 
shrink-warp-separate
for the speed perfered optimization. use_shrink_wrapping_separate in this patch 
provide the
chance for this check. No new hook is needed. 

Please let me know what you think.

BR, 
Fei

>
>jeff

Reply via email to