on 2019/9/12 下午4:14, Richard Biener wrote:
> On Wed, 11 Sep 2019, Kewen.Lin wrote:
> 
>> Hi,
>>
>> Sorry for the late update.  I've updated the words of target hooks part.
>>
>> Could someone help to review it?  Thanks in advance!
>>
>> By the way, as previous emails in this thread, Bin has approved the IVOPTs
>> part, while Segher has approved the rs6000 part.
> 
> The target hooks part is OK.  I guess we'll have to extend it eventually
> in case other targets want to make use of it.
> 

Thanks Richard!  Committed by r275713.

Yes, it's enough when doloop IV costs zero or infinite for generic/address use,
but if one target wants some other values, we may have to take it as one common
cost shared for all generic/address uses.  It's like IV candidate cost but not
the same since it's only needed when doloop IV is used for generic/address uses,
I guess it requires some changes in candidate set cost calculation.  I chose to
keep it simple at the first place, but radar on for any other target adoptions.


Thanks,
Kewen

> Thanks,
> Richard.
> 
>>
>> Thanks,
>> Kewen
>>
>> -----
>>
>> gcc/ChangeLog
>>
>> 2019-09-11  Kewen Lin  <li...@gcc.gnu.org>
>>
>>      PR middle-end/80791
>>      * config/rs6000/rs6000.c (TARGET_HAVE_COUNT_REG_DECR_P): New macro.
>>      (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
>>      (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
>>      * target.def (have_count_reg_decr_p): New hook.
>>      (doloop_cost_for_generic): Likewise.
>>      (doloop_cost_for_address): Likewise.
>>      * doc/tm.texi.in (TARGET_HAVE_COUNT_REG_DECR_P): Likewise.
>>      (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
>>      (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
>>      * doc/tm.texi: Regenerate.
>>      * tree-ssa-loop-ivopts.c (comp_cost::operator+=): Consider infinite cost
>>      addend.
>>      (record_group): Init doloop_p.
>>      (add_candidate_1): Add optional argument doloop, change the handlings
>>      accordingly.
>>      (add_candidate): Likewise.
>>      (generic_predict_doloop_p): Update attribute.
>>      (force_expr_to_var_cost): Add costing for expressions COND_EXPR/LT_EXPR/
>>      LE_EXPR/GT_EXPR/GE_EXPR/EQ_EXPR/NE_EXPR/UNORDERED_EXPR/ORDERED_EXPR/
>>      UNLT_EXPR/UNLE_EXPR/UNGT_EXPR/UNGE_EXPR/UNEQ_EXPR/LTGT_EXPR/MAX_EXPR/
>>      MIN_EXPR.
>>      (get_computation_cost): Update for doloop IV cand extra cost.   
>>      (determine_group_iv_cost_cond): Update for doloop IV cand.
>>      (determine_iv_cost): Likewise.
>>      (ivopts_estimate_reg_pressure): Likewise.
>>      (may_eliminate_iv): Update handlings for doloop IV cand.
>>      (add_iv_candidate_for_doloop): New function.
>>      (find_iv_candidates): Call function add_iv_candidate_for_doloop.
>>      (iv_ca_set_no_cp): Update for doloop IV cand.
>>      (iv_ca_set_cp): Likewise.
>>      (iv_ca_dump): Dump register cost.
>>      (find_doloop_use): New function.
>>      (analyze_and_mark_doloop_use): Likewise.
>>      (tree_ssa_iv_optimize_loop): Call function analyze_and_mark_doloop_use.
>>
>> gcc/testsuite/ChangeLog
>>
>> 2019-09-11  Kewen Lin  <li...@gcc.gnu.org>
>>
>>      PR middle-end/80791
>>      * gcc.dg/tree-ssa/ivopts-3.c: Adjust for doloop change.
>>      * gcc.dg/tree-ssa/ivopts-lt.c: Likewise.
>>      * gcc.dg/tree-ssa/pr32044.c: Likewise.
>>
>>
>> on 2019/8/23 下午6:18, Segher Boessenkool wrote:
>>> Hi!
>>>
>>> On Fri, Aug 23, 2019 at 05:43:32PM +0800, Bin.Cheng wrote:
>>>> On Fri, Aug 23, 2019 at 4:27 PM Kewen.Lin <li...@linux.ibm.com> wrote:
>>>> Not sure if non-ivopts parts are already approved?  If so, the patch
>>>> is okay with above issues addressed.
>>>
>>> The rs6000 part is fine.  The target.def entries need some spell check
>>> and copy-editing, but are obvious and trivial otherwise, and/or you can
>>> approve it as ivopts maintainer.
>>>
>>>> Thanks very much for your time!
>>>
>>> And thank you as well Bin :-)
>>>
>>>
>>> Segher
>>>
>>
> 

Reply via email to