Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Phabricator shutdown timeline

Leporacanthicus (Mats Petersson)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 5 2016, 9:41 AM (399 w, 5 d)

Recent Activity

Jun 1 2023

Leporacanthicus added inline comments to D151880: [FLANG] Change loop versioning to use shift instead of divide.
Jun 1 2023, 6:33 AM · Restricted Project, Restricted Project
Leporacanthicus added reviewers for D151880: [FLANG] Change loop versioning to use shift instead of divide: kiranchandramohan, tblah, peixin, vzakhari, DavidTruby.
Jun 1 2023, 4:46 AM · Restricted Project, Restricted Project
Leporacanthicus requested review of D151880: [FLANG] Change loop versioning to use shift instead of divide.
Jun 1 2023, 4:37 AM · Restricted Project, Restricted Project

May 30 2023

Leporacanthicus updated the diff for D151140: [FLANG] Support all arrays for LoopVersioning.

Update comment

May 30 2023, 8:44 AM · Restricted Project, Restricted Project
Leporacanthicus retitled D151140: [FLANG] Support all arrays for LoopVersioning from [FLANG] Support 3D arrays for LoopVersioning to [FLANG] Support all arrays for LoopVersioning.
May 30 2023, 6:02 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D151140: [FLANG] Support all arrays for LoopVersioning.

Remove upper limit of rank altogether.

May 30 2023, 5:51 AM · Restricted Project, Restricted Project

May 24 2023

Leporacanthicus updated the diff for D151140: [FLANG] Support all arrays for LoopVersioning.

Update index calculation yet again. Some tests failed - use stride for index calculation
and divide by itemsize at the end.

May 24 2023, 12:50 PM · Restricted Project, Restricted Project

May 23 2023

Leporacanthicus updated the diff for D151140: [FLANG] Support all arrays for LoopVersioning.

Fix yet another small-vector issue.

May 23 2023, 6:41 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D151140: [FLANG] Support all arrays for LoopVersioning.

Update to fix pre-commit build - Small Vector needs size.

May 23 2023, 6:18 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D151140: [FLANG] Support all arrays for LoopVersioning.

Updates in this revision:

  • Don't start with a zero and add/multiply that into the index calculation.
  • Don't ask for the Nth dims in N-dimensional array (unless N = 1)
  • Fix up tests to match the updated code-gen.
  • Remove hard-coded value in tests that shouldn't be checked.
May 23 2023, 5:52 AM · Restricted Project, Restricted Project

May 22 2023

Leporacanthicus added reviewers for D151140: [FLANG] Support all arrays for LoopVersioning: kiranchandramohan, vzakhari, DavidTruby, tblah.
May 22 2023, 12:58 PM · Restricted Project, Restricted Project
Leporacanthicus requested review of D151140: [FLANG] Support all arrays for LoopVersioning.
May 22 2023, 12:38 PM · Restricted Project, Restricted Project

May 19 2023

Leporacanthicus accepted D150869: [Flang][OpenMP] Add Todo for doconcurrent with worksharing loop.
May 19 2023, 2:42 AM · Restricted Project, Restricted Project

May 17 2023

Leporacanthicus added a comment to D150687: [OpenMP]Fix trivial build failure in MacOS.

Hmm, I'm not sure if we want to include <cmath> here because libomp definitely doesn't depend on libm. We might want to deal with it in https://reviews.llvm.org/D149010 instead.

May 17 2023, 3:29 AM · Restricted Project, Restricted Project

May 16 2023

Leporacanthicus added a reviewer for D150687: [OpenMP]Fix trivial build failure in MacOS: DavidTruby.
May 16 2023, 9:21 AM · Restricted Project, Restricted Project
Leporacanthicus requested review of D150687: [OpenMP]Fix trivial build failure in MacOS.
May 16 2023, 9:19 AM · Restricted Project, Restricted Project

May 5 2023

Leporacanthicus updated the diff for D149877: [flang]Zero Initialize simple types.

Update docs to let people know we changed to zero initialize some
globals.

May 5 2023, 8:58 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D149877: [flang]Zero Initialize simple types.

Just create a ZeroOp instead of calling createNullConstant.

May 5 2023, 8:25 AM · Restricted Project, Restricted Project
Leporacanthicus added a comment to D149877: [flang]Zero Initialize simple types.

Thanks for working on this!

Note that there is a fir::ZeroOp that is intended to create some zero initialized data regardless of the type, but it currently is a TODO in codegen for aggregate/array types (That is actually the fir.zero_init). I think a zeroinitialzer operation may be required in LLVM MLIR dialect (like for the poison/undef op), so that we can propagate fir::ZeroOp into an LLVM zeroinitializer.

May 5 2023, 7:39 AM · Restricted Project, Restricted Project
Leporacanthicus added reviewers for D149877: [flang]Zero Initialize simple types: tblah, vzakhari, kiranchandramohan, DavidTruby, jacob-crawley.
May 5 2023, 5:55 AM · Restricted Project, Restricted Project

May 4 2023

Leporacanthicus requested review of D149877: [flang]Zero Initialize simple types.
May 4 2023, 11:06 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D149265: [flang]Add test for 2D loop versioning test.

Remove empty lines

May 4 2023, 2:56 AM · Restricted Project, Restricted Project

Apr 27 2023

Leporacanthicus added inline comments to D149265: [flang]Add test for 2D loop versioning test.
Apr 27 2023, 6:32 AM · Restricted Project, Restricted Project

Apr 26 2023

Leporacanthicus added reviewers for D149265: [flang]Add test for 2D loop versioning test: tblah, kiranchandramohan, peixin, jacob-crawley.
Apr 26 2023, 9:31 AM · Restricted Project, Restricted Project
Leporacanthicus requested review of D149265: [flang]Add test for 2D loop versioning test.
Apr 26 2023, 9:30 AM · Restricted Project, Restricted Project

Apr 18 2023

Leporacanthicus added reviewers for D148649: [flang]Add more tests for loop versioning: tblah, DavidTruby, jacob-crawley, kiranchandramohan, peixin.
Apr 18 2023, 10:56 AM · Restricted Project, Restricted Project
Leporacanthicus requested review of D148649: [flang]Add more tests for loop versioning.
Apr 18 2023, 10:50 AM · Restricted Project, Restricted Project

Apr 17 2023

Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.

Rebase only

Apr 17 2023, 11:04 PM · Restricted Project, Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Review comment changes:

  • Add checks for "no result" from the operations
  • Fix code generated for array initializers
  • Change the names of op2 -> op, and opsOfInterest -> loopsOfInterest
  • Some typos in comments fixed
Apr 17 2023, 2:21 PM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.

Rebase only

Apr 17 2023, 2:19 PM · Restricted Project, Restricted Project, Restricted Project

Apr 14 2023

Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Fix unnecessary curly braces

Apr 14 2023, 12:31 PM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.

Remove unnecessary braces in if-statement.

Apr 14 2023, 10:43 AM · Restricted Project, Restricted Project, Restricted Project
Leporacanthicus added inline comments to D141306: Add loop-versioning pass to improve unit-stride.
Apr 14 2023, 10:14 AM · Restricted Project, Restricted Project
Leporacanthicus added inline comments to D141306: Add loop-versioning pass to improve unit-stride.
Apr 14 2023, 10:00 AM · Restricted Project, Restricted Project

Apr 12 2023

Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Rebase only

Apr 12 2023, 11:56 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.
  • Add new function to help clarify the purpose of the options being used.
  • Add descriptive comment to make function use clearer.
  • Update tests to make them a more explicit.
Apr 12 2023, 11:56 AM · Restricted Project, Restricted Project, Restricted Project

Apr 11 2023

Leporacanthicus added inline comments to D141306: Add loop-versioning pass to improve unit-stride.
Apr 11 2023, 11:42 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.
  • Review comment updates. All are comment wording and formatting, no actual code changes
Apr 11 2023, 11:41 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.

Rebase only.

Apr 11 2023, 11:36 AM · Restricted Project, Restricted Project, Restricted Project

Apr 6 2023

Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Add size to SmallVector to allow Windows build.

Apr 6 2023, 9:41 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Update moved header file and include kindmapping that we rely on.

Apr 6 2023, 8:45 AM · Restricted Project, Restricted Project
Leporacanthicus added inline comments to D141306: Add loop-versioning pass to improve unit-stride.
Apr 6 2023, 7:49 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.
  • Change wording in several comments.
  • Change one "auto" to real type.
  • Rename misspelled filename and add newline at the end of the file
Apr 6 2023, 7:46 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.

Rebase only

Apr 6 2023, 7:44 AM · Restricted Project, Restricted Project, Restricted Project

Apr 4 2023

Leporacanthicus added a comment to D141306: Add loop-versioning pass to improve unit-stride.

The loop versioning is inefficient for the following scenario, in which not all arrays are contiguous in a loop. Maybe there should be one cost model to perform the loop versioning, and be refined driven by the cases in real workloads?

<snip code sample>

Apr 4 2023, 9:34 AM · Restricted Project, Restricted Project
Leporacanthicus added a comment to D141306: Add loop-versioning pass to improve unit-stride.

The loop versioning is inefficient for the following scenario, in which not all arrays are contiguous in a loop. Maybe there should be one cost model to perform the loop versioning, and be refined driven by the cases in real workloads?

subroutine vadd(c, a, b, n)
  implicit none
  real :: c(:), a(:), b(:)
  integer :: i, n

  print *, is_contiguous(b)  ! classic-flang is wrong here
  do i = 1, n
    c(i) = 5. * a(i) + 3. * b(i)
    c(i) = c(i) * a(i) + a(i) * 4.
  end do
end

interface
  subroutine vadd(c, a, b, n)
    implicit none
    integer :: n
    real :: c(:), a(:), b(:)
  end
end interface

  integer, parameter :: ub = 10
  real :: a(ub) = (/ (i, i=1, 10) /)
  real :: b(ub*2) = (/ (i, i=1, 20) /)
  real :: c(ub) = 0.
  call vadd(c(1:ub), a(1:ub), b(1:ub:2), 10)
  print *, c
end

BTW, classic-flang use copy-in-copy-out in caller for assumed-shape array, and all the strides are removed in the callee.

Apr 4 2023, 6:36 AM · Restricted Project, Restricted Project
Leporacanthicus added inline comments to D141306: Add loop-versioning pass to improve unit-stride.
Apr 4 2023, 5:24 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.
  • Rebase
  • Fix review comments
Apr 4 2023, 5:22 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.

Rebase.

Apr 4 2023, 5:21 AM · Restricted Project, Restricted Project, Restricted Project

Mar 17 2023

Leporacanthicus added a comment to D141306: Add loop-versioning pass to improve unit-stride.

I failed to apply this patch locally.

Mar 17 2023, 10:11 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Rebase only

Mar 17 2023, 10:10 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.

Rebase and fix conflicts

Mar 17 2023, 10:09 AM · Restricted Project, Restricted Project, Restricted Project
Leporacanthicus added a comment to D141306: Add loop-versioning pass to improve unit-stride.

I failed to apply this patch locally.

Mar 17 2023, 2:44 AM · Restricted Project, Restricted Project

Mar 16 2023

Leporacanthicus added a comment to D141306: Add loop-versioning pass to improve unit-stride.

Yes, I've only spent SOME time trying to understand why vectorizer doesn't - it basically comes down to "can't figure out how the stride is calculated, and whether it may change over time". The loop versioning here is helping to solve that for the lower layers in the compiler - and in my experience (I've written quite a few different style loops and such), either some MLIR pass(es) manages to vectorize the codr, or LLVM loop vectorizer can't do it either. [Why is there two layers of vectorizers? I don't know - presumably people like to write code that does similar things on multiple levels].

OK.

Also, the overall goal isn't ONLY to vectorize, but also to "improve overall loop performance". It may be that we can convince the compiler to do a better job in some other way, but right now, I'm not aware of what that should be. The fundamental problem is that the descriptors used to pass array information is getting in the way of lots of things. It should be noted that although we see performance improvement in roms_r, it does NOT come from vectorization of the loop constructs - both gfortran and flang uses loop versioning, and gets similar performance improvement - and neither compiler uses vector instructions in the hot loops in ROMS.

I am confused about how the performance gets improved for roms_r you mentioned. From the test in this patch, I can only see the optimization opportunity of loop vectorization after loop versioning. Maybe another test case extracted in roms_r showing how it gets performance improvement is better.

Mar 16 2023, 12:03 PM · Restricted Project, Restricted Project
Leporacanthicus added a comment to D141306: Add loop-versioning pass to improve unit-stride.

FYI, another related scenario is https://github.com/llvm/llvm-project/issues/59388.

I also faced one case having loop interchange opportunity, which is blocked by the Fortran array stride information not understood by SCEV analysis. I think this is one common issue in loop optimization. So there maybe need some discussions whether loop versioning in MLIR pass is the right solution.

Mar 16 2023, 11:30 AM · Restricted Project, Restricted Project

Mar 15 2023

Leporacanthicus accepted D146075: [flang][driver][openmp] Write MLIR for -save-temps.

LGTM.

Mar 15 2023, 9:49 AM · Restricted Project, Restricted Project, Restricted Project
Leporacanthicus added a reviewer for D141306: Add loop-versioning pass to improve unit-stride: SBallantyne.
Mar 15 2023, 7:47 AM · Restricted Project, Restricted Project
Leporacanthicus added a comment to D141306: Add loop-versioning pass to improve unit-stride.

I have not noticed any measurable increase in compile time - Spec 2017 wrf_r takes within 1-2 seconds, and that's the one that takes about 15 minutes to build in total. I'm not saying it's impossible to come up with something that compiles slowly with this code, but I've made as good an attempt as I can to "exit early" if there's nothing that needs doing, and only duplicate the innermost loop [which potentially is not the most optimal case].

Great! This sounds good to me.

The problem I'm trying to solve here is that the Loop Vectorizer optimisation doesn't "like" the descriptor access to read the strides [and other descriptor accesses] - it doesn't understand that the value is a constant for a given run of a loop. With versioning , it basically makes the Loop Vectorizer "happy" with the loop, so it can do its own thing.

I think the loop vectorize pass is doing the similar thing. Check the generated LLVM IR the following Fortran case:

subroutine sum1d(a, n)
  real*8 :: a(:)
  integer :: n
  real*8 :: sum
  integer :: i
  sum = 0
  do i=1,n
     sum = sum + a(i)
  end do
  call temp(sum)
end subroutine sum1d
$ flang-new -fc1 -emit-llvm -O3 test.f90
$ cat test.ll
define void @sum1d_(ptr nocapture readonly %0, ptr nocapture readonly %1) local_unnamed_addr {
  %3 = alloca double, align 8
  store double 0.000000e+00, ptr %3, align 8, !tbaa !1
  %4 = load i32, ptr %1, align 4, !tbaa !1
  %5 = icmp sgt i32 %4, 0
  br i1 %5, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %2
  %6 = zext i32 %4 to i64
  %7 = load ptr, ptr %0, align 8, !tbaa !5
  %8 = getelementptr { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %0, i64 0, i32 7, i64 0, i64 2
  %9 = load i64, ptr %8, align 8, !tbaa !5
  br label %10

10:                                               ; preds = %.lr.ph, %10
  %indvars.iv = phi i64 [ 1, %.lr.ph ], [ %indvars.iv.next, %10 ]
  %11 = phi double [ 0.000000e+00, %.lr.ph ], [ %16, %10 ]
  %12 = add nsw i64 %indvars.iv, -1
  %13 = mul i64 %9, %12
  %14 = getelementptr i8, ptr %7, i64 %13                                                            ! Note: This has the similar structure as the LLVM IR generated from the following C code.
  %15 = load double, ptr %14, align 8, !tbaa !1
  %16 = fadd contract double %11, %15
  store double %16, ptr %3, align 8, !tbaa !1
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv, %6
  br i1 %exitcond.not, label %._crit_edge, label %10

._crit_edge:                                      ; preds = %10, %2
  call void @temp_(ptr nonnull %3)
  ret void
}

When you compare it with the generated IR from the following C case using clang case.c -S -emit-llvm -O3:

void temp(double *sum);

void test1(double * restrict A, double * restrict B, int N, int Stride) {
  int i;
  for (i = 0; i < N; ++i)
    B[i * Stride] += A[i * Stride];
}

void test2(double * restrict A, int N, int Stride) {
  int i;
  double sum = 0.0;
  for (i = 0; i < N; ++i)
    sum += A[i * Stride];
  temp(&sum);
}

The loop in function test1 can be vectorized using stride-check loop versioning. I don't dig why test2 fail in vectorizing the reduction. Anyway, the loop vectorize pass can do some similar work. But I am not sure if the SCEV analysis there can handle the Fortran case.

Mar 15 2023, 3:48 AM · Restricted Project, Restricted Project

Mar 14 2023

Leporacanthicus added a comment to D141306: Add loop-versioning pass to improve unit-stride.

I am thinking if we should do the loop versioning in MLIR since this may increase compilation time in optimization passes.

Mar 14 2023, 12:03 PM · Restricted Project, Restricted Project

Mar 8 2023

Leporacanthicus added inline comments to D141306: Add loop-versioning pass to improve unit-stride.
Mar 8 2023, 11:39 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Updated to reflect review comments.

  • Use different type for Walk functions.
  • Use "unwrap" functions to get to types.
  • Fix some debug output and related stuff.
  • Some other minor changes, including clang-format fixups.
Mar 8 2023, 11:28 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.

Fix copied comment to reflect the new content.

Mar 8 2023, 11:25 AM · Restricted Project, Restricted Project, Restricted Project
Leporacanthicus added inline comments to D141307: Add -f[no-]loop-versioning option.
Mar 8 2023, 7:41 AM · Restricted Project, Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.

Updates based on review comments:

  • Add tests.
  • Enable on -O3
Mar 8 2023, 7:25 AM · Restricted Project, Restricted Project, Restricted Project

Mar 6 2023

Leporacanthicus added reviewers for D141306: Add loop-versioning pass to improve unit-stride: vzakhari, peixin, tblah.
Mar 6 2023, 7:10 AM · Restricted Project, Restricted Project

Mar 3 2023

Leporacanthicus retitled D141306: Add loop-versioning pass to improve unit-stride from WIP LoopVersioning to Add loop-versioning pass to improve unit-stride.
Mar 3 2023, 2:42 AM · Restricted Project, Restricted Project
Leporacanthicus retitled D141307: Add -f[no-]loop-versioning option from [WIP] Add -f[no-]loop-versioning option to Add -f[no-]loop-versioning option.
Mar 3 2023, 2:39 AM · Restricted Project, Restricted Project, Restricted Project

Mar 2 2023

Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Add tests.

Mar 2 2023, 8:30 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.

Update for rebase.

Mar 2 2023, 8:22 AM · Restricted Project, Restricted Project, Restricted Project

Feb 28 2023

Leporacanthicus accepted D144974: [flang] Fix a bug with simplified minloc that treated logicals with even values > 1 as 0.

LGTM

Feb 28 2023, 8:34 AM · Restricted Project, Restricted Project

Feb 21 2023

Leporacanthicus added a comment to D144103: [Flang] Add Minloc to simplify intrinsics pass.

Generally looks OK, just some minor nitpicks.

Feb 21 2023, 10:43 AM · Restricted Project, Restricted Project

Feb 16 2023

Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Update to remove WIP

Feb 16 2023, 10:15 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.

Rebased and updated help-message

Feb 16 2023, 10:13 AM · Restricted Project, Restricted Project, Restricted Project

Feb 13 2023

Leporacanthicus added a comment to D143899: [Flang] Fix for Any/All simplification to properly propogate the inital value.

Aside from minor nit-picks, this looks good to me.

Feb 13 2023, 9:15 AM · Restricted Project, Restricted Project

Feb 3 2023

Leporacanthicus accepted D142977: [Flang] Add Any and All intrinsics to simplify intrinsics pass.

LGTM.

Feb 3 2023, 6:17 AM · Restricted Project, Restricted Project

Feb 2 2023

Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Updated patch, now works for 1D and 2D arrays.

Feb 2 2023, 4:09 AM · Restricted Project, Restricted Project

Feb 1 2023

Leporacanthicus added inline comments to D142977: [Flang] Add Any and All intrinsics to simplify intrinsics pass.
Feb 1 2023, 7:21 AM · Restricted Project, Restricted Project

Jan 31 2023

Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Some progress, now identifying the correct loops a little better.

Jan 31 2023, 12:10 PM · Restricted Project, Restricted Project
Leporacanthicus added inline comments to D142977: [Flang] Add Any and All intrinsics to simplify intrinsics pass.
Jan 31 2023, 9:24 AM · Restricted Project, Restricted Project

Jan 30 2023

Leporacanthicus accepted D142877: [flang] Fix simplify intrinsic for count not checking for rank = 0 properly.

LGTM, thanks for fixing!

Jan 30 2023, 3:47 AM · Restricted Project, Restricted Project
Leporacanthicus added a comment to D142877: [flang] Fix simplify intrinsic for count not checking for rank = 0 properly.

Looks OK except for the test checking for the wrong "Not".

Jan 30 2023, 2:53 AM · Restricted Project, Restricted Project

Jan 26 2023

Leporacanthicus accepted D142209: [flang] Add Count to simplified intrinsics.

I think this is good to go in now, subject to @vzakhari not finding anything else wrong.

Jan 26 2023, 11:53 AM · Restricted Project, Restricted Project

Jan 20 2023

Leporacanthicus added a comment to D142209: [flang] Add Count to simplified intrinsics.

Looks OK in general, just some minor tidy-up suggestions.

Jan 20 2023, 9:28 AM · Restricted Project, Restricted Project

Jan 13 2023

Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Rebase again

Jan 13 2023, 5:08 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141307: Add -f[no-]loop-versioning option.

Rebase

Jan 13 2023, 4:48 AM · Restricted Project, Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Rebase to latest llvm/main.

Jan 13 2023, 4:12 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D141306: Add loop-versioning pass to improve unit-stride.

Added "move remaining loop into else branch" and related changes.

Jan 13 2023, 4:01 AM · Restricted Project, Restricted Project

Jan 10 2023

Leporacanthicus added a comment to D141306: Add loop-versioning pass to improve unit-stride.

Hi @Leporacanthicus, thank you for working on this! I wonder if you target any particular benchmark with these changes - can you please post any information in the description?

This is work described here:
https://discourse.llvm.org/t/transformations-to-aid-optimizer-for-subroutines-functions-with-assumed-shape-arguments/66447/3

Jan 10 2023, 12:57 PM · Restricted Project, Restricted Project

Jan 9 2023

Leporacanthicus requested review of D141307: Add -f[no-]loop-versioning option.
Jan 9 2023, 10:27 AM · Restricted Project, Restricted Project, Restricted Project
Leporacanthicus requested review of D141306: Add loop-versioning pass to improve unit-stride.
Jan 9 2023, 10:25 AM · Restricted Project, Restricted Project

Nov 3 2022

Leporacanthicus added inline comments to D137335: [flang]Fix build failure in tests.
Nov 3 2022, 7:38 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D137335: [flang]Fix build failure in tests.

Try again, this time without requires line

Nov 3 2022, 7:38 AM · Restricted Project, Restricted Project
Leporacanthicus added a comment to D137335: [flang]Fix build failure in tests.

What if you remove --target=x86_64-unknown-linux-gnu instead and make the tests target agnostic?

Nov 3 2022, 7:28 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D137335: [flang]Fix build failure in tests.

Instead of requiring x86, remove target in tests. This will allow
testing on a wider range of targets, rather than a smaller range.

Nov 3 2022, 7:19 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D137335: [flang]Fix build failure in tests.

Update to correct typos.

Nov 3 2022, 6:41 AM · Restricted Project, Restricted Project
Leporacanthicus added reviewers for D137335: [flang]Fix build failure in tests: vzakhari, kiranchandramohan, DavidTruby, tblah, awarzynski.
Nov 3 2022, 6:31 AM · Restricted Project, Restricted Project
Leporacanthicus requested review of D137335: [flang]Fix build failure in tests.
Nov 3 2022, 6:28 AM · Restricted Project, Restricted Project

Nov 2 2022

Leporacanthicus updated the diff for D133568: [Flang][Driver]Add datalayout before doing LLVM-IR transformation.

Update comments (clarify/reword, fix typos) and rebase.

Nov 2 2022, 11:18 AM · Restricted Project, Restricted Project

Oct 19 2022

Leporacanthicus added inline comments to D133568: [Flang][Driver]Add datalayout before doing LLVM-IR transformation.
Oct 19 2022, 7:34 AM · Restricted Project, Restricted Project
Leporacanthicus updated the diff for D133568: [Flang][Driver]Add datalayout before doing LLVM-IR transformation.

Updates per review comments and local testing.

Oct 19 2022, 7:33 AM · Restricted Project, Restricted Project