- User Since
- May 11 2019, 5:23 PM (185 w, 4 d)
- Refactored OMPIRBuilder method which calculates SIMD alignment. Added optional parameter Type *AlignedValueTy which can be used to define optimal alignment. If this parameter is not specified then, we return the maximal SIMD alignment for given target.
- Clang still uses suboptimal value because there is no link between clang TargetInfo and LLVM-Type. More information about this decision can be found in previous review which introduced original getSimdDefaultAlign function: https://reviews.llvm.org/D10597?id=28205#inline-85925
- TargetInfo class contains method: getMaxVectorAlign . This method returns maximal vector alignment for given target. The only difference between original: getMaxVectorAlign and getSimdDefaultAlign is that getSimdDefaultAlign returns 0 alignment for ARM target. I don't know if it is ok, that we assume 0 alignment for ARM targets.
- Removed getSimdDefaultAlign function.
Tue, Nov 22
Yes, we can extend calculations of the default alignment. My primary goal was to move code from clang into llvm without modification of the code logic.
Fri, Nov 18
Patch is committed. Link to the commit: https://github.com/llvm/llvm-project/commit/163dbfe869f550bd2d22520fda109876a1122eda . I forgot to add review link in commit message.
Tue, Nov 1
Oct 31 2022
Applied remarks. Added more tests.
Oct 20 2022
Addressed review comments:
- Modified the way how aligned clause is represented. Use I64ArrayAttr instead of Variadic to represent alignment values
- Added verifier which checks if aligned clause was properly mapped
- Added more tests MLIR tests
Oct 18 2022
Oct 17 2022
- Changed DenseMap to MapVector. MapVector provides that the iteration order is the same as insertion order
Oct 13 2022
Oct 11 2022
- Update description of AlignedVars argument
- Modified generation of align assumptions. OMPIRBuilder generates now only assumptions calls. The arguments of the assumption calls are generated by Clang.
- Added integration test to prove that Clang and OMPIRBuilder support aligned clause
- Simplification of unit tests -> applying review remarks
Oct 5 2022
Oct 4 2022
Remove custom enum for mapping order(concurrent)
Add assert to ensure that alignment value is always specified.
Oct 3 2022
Sep 19 2022
For me the patch is ok, but I think it would be better, if somebody else will also review it.
Sep 16 2022
Sep 13 2022
@peixin What is status of this patch? Are you planning to modify this patch or is it ready for the review?
Applied review remarks. Scope of changes:
Sep 9 2022
Aug 19 2022
Aug 17 2022
Follow up review: https://reviews.llvm.org/D132023 . This review contains Fortran test with simd clause.
Updated test: Do not rely on hardcoded labels. Check if collapsed loop bound is calculated.
Aug 16 2022
Thank you for your review. I will apply your remarks in the separate patch which will be Flang specific.
Done. I modified this review so that it contains only OpenMP specific changes.
Add only OpenMP specific changes. Update simd loop MLIR description and strengthen translation test.
Aug 11 2022
Aug 10 2022
Aug 9 2022
Scope of changes:
Aug 8 2022
Aug 1 2022
Jul 29 2022
Do not collapse loops inside function responsible for applying SIMD metadirectives
Added special function for loop versioning
Jul 28 2022
Implemented simd if clause- applying review remarks:
- Use simplified cloning mechanism (without cloneLoopWithPreheader).
- Removed addLoopMetadata(Loop *L, Metadata) function.
- Added more tests.
Jul 26 2022
Jul 25 2022
Fix build failures
Applied remarks. Moved generation of if clause to OMPIRBuilder.
Jul 14 2022
@jhuber6 Your accepting comment sounds that there is a risk connected with -O3 optimization. That's why I wanted to know if it is worth to turn on O3 optimization. Thanks for explanation.
@ye-luo Thanks for your response.
Jul 13 2022
Could you describe/share with us some benchmarks results which prove that it is worth to turn on -O3 optimization?
Jul 11 2022
Jul 8 2022
Jul 6 2022
Added check for unsupported lowering if clause to LLVM IR.
Refactor Flang-MLIR lowering. Extracted function for handling if clause.
Jul 5 2022
Fixed layout of simd description
Addressed review remarks
Jul 4 2022
Added test case for simd directive with if clause in file: flang/test/Lower/OpenMP/simd.f90
Jul 3 2022
Jun 30 2022
Jan 23 2020
Dec 18 2019
This patch implements individual version of SCEVVisitor. Taylored version of SCEVVisitor is required to pass pointer to RecordedAssumptions to visit_type_scev functions.
Dec 17 2019
Uploaded the same changes with the more context: git format-patch -U999999 HEAD~1
Dec 9 2019
- Reworked mechanism of collecting assumptions. All assumptions are now taken inside ScopBuilder.
- Internal functions of Scop class do not record any assumption. They use cached isl::pw_aff objects which are created by ScopBuilder.