User Details
- User Since
- May 23 2022, 1:42 AM (71 w, 8 h)
Fri, Sep 29
It has been moved to github, please continue to review, thank you.
https://github.com/llvm/llvm-project/pull/67812
Mon, Sep 25
LG, thanks.
Sun, Sep 24
Mon, Sep 4
Rebase.
Aug 30 2023
ping
Aug 23 2023
Remove the unused parameter Prev in RecurrenceDescriptor::isFindLastIVPattern.
Aug 22 2023
@michaelmaitland Yes, with this example, the your transformation is possible.
However, this still remains a challenge that vectorizers need to address because we cannot restrict the input IR that goes into opt.
Therefore, I have provided a new case -- @select_i32_from_icmp_non_const_same_inputs:
Aug 21 2023
Add test case @select_i32_from_icmp_non_const_same_inputs.
Changes:
- Rebase
- Format some code
- New test cases @not_vectorized_select_icmp_const_cmp_in_recurrence and @not_vectorized_select_icmp_cmp_in_recurrence in Transforms/LoopVectorize/iv-select-cmp.ll.
- Not allow the inclusion of cmp instructions in FindLast recurrence, as I mentioned in the pre-commit revision D157375. The examples are @not_vectorized_select_icmp_const_cmp_in_recurrence and @not_vectorized_select_icmp_cmp_in_recurrence in Transforms/LoopVectorize/iv-select-cmp.ll.
Aug 16 2023
Thanks for Florian's reminder!
Rebase and clang-format it again.
Aug 13 2023
Ping
Aug 8 2023
Corrected the debug message in test case.
Rebase.
Minor changes. Remove the changes that should not be in this patch.
Rebase, and here is a summary of the changes:
Aug 3 2023
Rebase, and update the comment.
Aug 2 2023
Change:
- Replaced all SelectCmp.* with AnyOf.*
- Fixed comments.
Jul 31 2023
Fixed typo.
Rebase and update according to comments.
Jul 30 2023
Jul 25 2023
LG
Based on my response https://reviews.llvm.org/D150851#4531155, do you have any thoughts?
If you choose option 3, this patch can be landed.
If you choose option 1, this case can be cleaned up into three blocks: entry, for.body, and exit.
If you choose option 2, then this test case is not needed.
Update the patch according to the comments.
Jul 24 2023
Jul 19 2023
Changes:
- Rename Select[I|F]Cmp to [I|F]AnyOf
- Rename SelectIV[I|F]Cmp to [I|F]FindLastIV
Changes:
- Drop the suffix of variable name
- Replace select_icmp_const_3 with select_icmp_const_3_variable_rdx_start
- Replace %ii with %rdx.start
Rebase.
Jul 18 2023
Changes:
- Replace select_icmp_min_iv_start_value with select_icmp_min_valid_iv_start
Jul 11 2023
Rebase.
ping
Changes:
- Change the name of phi
- Add a negative test case
Jul 10 2023
ping
Jul 7 2023
Update: I could found an example where the approach in D152693 lead to incorrect result:
Assuming start_value is 3, and red_part is {0, 1, 2, 3} in the end. If the 3 is updated from the loop, not from the start_value , red should be 3 instead of 2.
Jul 4 2023
Changes:
- Update comments. (Artagnon and Shiva's comments)
Changes:
- Fix the test cases, D154415. (Ayal's comment)
Jun 29 2023
Jun 28 2023
I'm glad that others have also noticed this, especially the implementation of the select-cmp pattern for decreasing induction variables. The select-cmp pattern for decreasing induction variables is a function that I haven't implemented yet. Have you come across any real applications or benchmarks that make use of it.
Jun 27 2023
Changes:
- Remove the redundant comment. (fhahn's comment)
- Separate testing and implementation. (fhahn's comment)
Jun 12 2023
Jun 5 2023
Changes:
- Format and minor fix
May 31 2023
Changes:
- Add test cases
- Check the bound of increasing induction variable
May 18 2023
Changes:
- Split SelectIVICmp and SelectIVFCmp out
- Add Comment
- Minor refine the code
May 3 2023
Update commit log.