Page MenuHomePhabricator

bmahjour (Bardia Mahjour)
User

Projects

User does not belong to any projects.

User Details

User Since
May 3 2019, 8:38 AM (111 w, 15 h)

Recent Activity

Mon, Jun 14

bmahjour added inline comments to D103615: [Clang] Add option for vector compare compatibility..
Mon, Jun 14, 11:25 AM · Restricted Project

Fri, Jun 4

bmahjour added a reviewer for D103615: [Clang] Add option for vector compare compatibility.: bmahjour.
Fri, Jun 4, 10:56 AM · Restricted Project
bmahjour added a comment to D103615: [Clang] Add option for vector compare compatibility..

As far as I can see, there is no good reason for the special treatment of vector bool/pixel going forward. Could we drop this special treatment, or at least change the default to use a scalar results across the board (consistent with XL's behaviour and clang's current behaviour for most cases).

Fri, Jun 4, 10:52 AM · Restricted Project

Wed, Jun 2

bmahjour accepted D103553: [AIX] Use posix_memalign instead of malloc to ensure 16 byte alignment.
Wed, Jun 2, 5:22 PM
bmahjour added a comment to D103553: [AIX] Use posix_memalign instead of malloc to ensure 16 byte alignment.

LGTM

Wed, Jun 2, 5:22 PM
bmahjour added inline comments to D103553: [AIX] Use posix_memalign instead of malloc to ensure 16 byte alignment.
Wed, Jun 2, 2:08 PM

Fri, May 28

bmahjour committed rG06eaffa85821: [NFC] Remove confusing info about MainLoop VF/UF from debug message (authored by bmahjour).
[NFC] Remove confusing info about MainLoop VF/UF from debug message
Fri, May 28, 1:11 PM

Tue, May 25

bmahjour added inline comments to D101759: [PowerPC] Scalar IBM MASS library conversion pass.
Tue, May 25, 12:42 PM · Restricted Project, Restricted Project

May 18 2021

bmahjour added inline comments to D101759: [PowerPC] Scalar IBM MASS library conversion pass.
May 18 2021, 4:28 PM · Restricted Project, Restricted Project

May 13 2021

bmahjour added a comment to D102437: [LV] NFC: Decouple foldTailByMasking from isScalarWithPredication..

I like this change, but some of the widening decisions used to feed back to the result of isScalarWithPredication which may alter the result in unexpected ways. I'd suggest you try to remove the VF from that function in a separate patch first. If it doesn't break anything anywhere, then we can move ahead with this patch.

May 13 2021, 3:40 PM · Restricted Project
bmahjour added reviewers for D100991: Fix parsing of vector keyword in presence of conflicting uses.: hubert.reinterpretcast, ZarkoCA.
May 13 2021, 9:55 AM · Restricted Project

May 12 2021

bmahjour added a comment to D102348: [Instructions]: Calls marked with inaccessiblememonly attribute should be considered to not read/write memory.

I'm not exactly sure what it means to "access memory that is not accessible by the module being compiled.". My guess is that it's for things like intrinsics that take a global string as argument (eg. the file name), for compile-time mapping, but don't get lowered to any instructions that actually access that memory in the final generated assembly. Is that correct, or are there other examples to consider?

May 12 2021, 11:59 AM · Restricted Project

May 10 2021

bmahjour accepted D101305: [LoopInterchange] Fix legality for triangular loops.

LGTM, with a minor nit-pick.

May 10 2021, 1:29 PM · Restricted Project
bmahjour added inline comments to D101305: [LoopInterchange] Fix legality for triangular loops.
May 10 2021, 9:59 AM · Restricted Project

May 6 2021

bmahjour added inline comments to D101305: [LoopInterchange] Fix legality for triangular loops.
May 6 2021, 7:15 AM · Restricted Project

May 5 2021

bmahjour accepted D94717: [LoopNest] Consider loop nest with inner loop guard using outer loop induction variable to be perfect .

So if I understand correctly, we still allow code in the exit block and the other target of the guard branch like before, so this is purely an improvement over what we had before. Although, as I said before I think we should allow non-empty blocks as well, but that can come as future extensions.

May 5 2021, 2:14 PM · Restricted Project
bmahjour added inline comments to D101726: [LV] Account for tripcount when calculation vectorization profitability.
May 5 2021, 1:30 PM · Restricted Project
bmahjour added a comment to D94717: [LoopNest] Consider loop nest with inner loop guard using outer loop induction variable to be perfect .

As you can see for.end is not empty and so this loop's guard won't be detected!

From looking at skipEmptyBlockUntil, End is not require to be empty, so skipEmptyBlockUntil(for.end.loopexit, for.end) would return for.end.

May 5 2021, 11:12 AM · Restricted Project
bmahjour added inline comments to D101726: [LV] Account for tripcount when calculation vectorization profitability.
May 5 2021, 8:14 AM · Restricted Project

May 4 2021

bmahjour added inline comments to D101726: [LV] Account for tripcount when calculation vectorization profitability.
May 4 2021, 10:53 AM · Restricted Project

May 3 2021

bmahjour added a comment to D94717: [LoopNest] Consider loop nest with inner loop guard using outer loop induction variable to be perfect .

I think this changes the semantics for the cases that we used to handle before. For example wouldn't this require the exit successors to be empty? If so I think lcssa phis can prevent us from detecting guards. We need to test for those cases as well.

LCSSA phis should be in the loop exit block, not exit successors.

May 3 2021, 3:09 PM · Restricted Project
bmahjour added inline comments to D101726: [LV] Account for tripcount when calculation vectorization profitability.
May 3 2021, 2:52 PM · Restricted Project
bmahjour accepted D101486: [Dependence Analysis] Enable delinearization of fixed sized arrays.

LGTM pending indicated test change and no further comments from Michael.

May 3 2021, 1:47 PM · Restricted Project

Apr 30 2021

bmahjour requested changes to D94717: [LoopNest] Consider loop nest with inner loop guard using outer loop induction variable to be perfect .

I think this changes the semantics for the cases that we used to handle before. For example wouldn't this require the exit successors to be empty? If so I think lcssa phis can prevent us from detecting guards. We need to test for those cases as well.

Apr 30 2021, 3:10 PM · Restricted Project
bmahjour accepted D94717: [LoopNest] Consider loop nest with inner loop guard using outer loop induction variable to be perfect .
Apr 30 2021, 2:39 PM · Restricted Project
bmahjour added inline comments to D94717: [LoopNest] Consider loop nest with inner loop guard using outer loop induction variable to be perfect .
Apr 30 2021, 8:14 AM · Restricted Project

Apr 29 2021

bmahjour accepted D101209: [PowerPC] Provide fastmath sqrt and div functions in altivec.h.

LGTM

Apr 29 2021, 3:52 PM · Restricted Project
bmahjour added inline comments to D94717: [LoopNest] Consider loop nest with inner loop guard using outer loop induction variable to be perfect .
Apr 29 2021, 1:02 PM · Restricted Project
bmahjour added inline comments to D94717: [LoopNest] Consider loop nest with inner loop guard using outer loop induction variable to be perfect .
Apr 29 2021, 12:02 PM · Restricted Project
bmahjour added a reviewer for D101486: [Dependence Analysis] Enable delinearization of fixed sized arrays: bmahjour.
Apr 29 2021, 8:21 AM · Restricted Project
bmahjour added inline comments to D101486: [Dependence Analysis] Enable delinearization of fixed sized arrays.
Apr 29 2021, 8:20 AM · Restricted Project
bmahjour added inline comments to D101374: [LV] Consider Loop Unroll Hints When Making Interleave Decisions.
Apr 29 2021, 6:55 AM · Restricted Project, Restricted Project

Apr 28 2021

bmahjour committed rGddb3b26a1269: [LV] Consider Loop Unroll Hints When Making Interleave Decisions (authored by bmahjour).
[LV] Consider Loop Unroll Hints When Making Interleave Decisions
Apr 28 2021, 2:28 PM
bmahjour closed D101374: [LV] Consider Loop Unroll Hints When Making Interleave Decisions.
Apr 28 2021, 2:28 PM · Restricted Project, Restricted Project
bmahjour added a comment to D101374: [LV] Consider Loop Unroll Hints When Making Interleave Decisions.

It was based that function on what Clang generates with the primary intention to generate "your pragma has been ignored" warnings. llvm.loop.unroll.runtime.disable would still allow full unrolling, so it does not fit directly into an enable/disable scheme. Maybe we'd need separate hasFullUnrollTransformation and hasPartialUnrollTransformation functions. Patch welcome.

Apr 28 2021, 2:04 PM · Restricted Project, Restricted Project
bmahjour requested changes to D94717: [LoopNest] Consider loop nest with inner loop guard using outer loop induction variable to be perfect .
Apr 28 2021, 1:19 PM · Restricted Project
bmahjour requested changes to D101209: [PowerPC] Provide fastmath sqrt and div functions in altivec.h.
Apr 28 2021, 8:46 AM · Restricted Project

Apr 27 2021

bmahjour updated the diff for D101374: [LV] Consider Loop Unroll Hints When Making Interleave Decisions.

Changed it to use hasUnrollTransformation() per Michael's comment. Note that hasUnrollTransformation does not take llvm.loop.unroll.runtime.disable into account. I think that's ok for now, since clang doesn't seem to be generating that MD and we only use it for marking epilogue loops. We could add that in the future as a separate patch, if the need arises.

Apr 27 2021, 5:12 PM · Restricted Project, Restricted Project
bmahjour updated the summary of D101374: [LV] Consider Loop Unroll Hints When Making Interleave Decisions.
Apr 27 2021, 9:18 AM · Restricted Project, Restricted Project
bmahjour updated the summary of D101374: [LV] Consider Loop Unroll Hints When Making Interleave Decisions.
Apr 27 2021, 9:16 AM · Restricted Project, Restricted Project
bmahjour requested review of D101374: [LV] Consider Loop Unroll Hints When Making Interleave Decisions.
Apr 27 2021, 9:16 AM · Restricted Project, Restricted Project

Apr 23 2021

bmahjour added a comment to D101130: [PowerPC] Provide XL-compatible builtins in altivec.h.

LGTM

Apr 23 2021, 7:37 AM · Restricted Project

Apr 20 2021

bmahjour added a comment to D100331: [Dependence Analysis] Fix ExactSIV producing wrong analysis.

Most of the changes in DA results look good to me, except a few I've noted. Perhaps those can be improved in the future, since this patch is making an improvement overall.

Apr 20 2021, 7:16 AM · Restricted Project

Apr 16 2021

bmahjour added inline comments to D99750: [LV, VP] RFC: VP intrinsics support for the Loop Vectorizer (Proof-of-Concept).
Apr 16 2021, 9:11 AM · Restricted Project, Restricted Project
bmahjour added a comment to D99750: [LV, VP] RFC: VP intrinsics support for the Loop Vectorizer (Proof-of-Concept).

The overall approach looks good to me. I might have gone a little too deep into the details with my inline comments, but the direction makes sense to me.

Apr 16 2021, 9:03 AM · Restricted Project, Restricted Project

Apr 15 2021

bmahjour added inline comments to D100121: [LV] Let selectVectorizationFactor reason directly on VectorizationFactor..
Apr 15 2021, 7:59 AM · Restricted Project

Apr 8 2021

bmahjour added a comment to D100121: [LV] Let selectVectorizationFactor reason directly on VectorizationFactor..

You're right, that comment wasn't correct. I wrote the code last week and incorrectly remembered the change when writing up the comment today.

The issue has to do with the truncation. It stores the floating-point cost in the ProfitableVFs list as unsigned.

For llvm/test/Transforms/LoopVectorize/X86/intrinsiccost.ll, it then compares the costs as follows:

1 < 2 ? true
0 < 1 ? true
0 < 0 ? false

Where it now compares the costs properly as:

5/4 < 5/2 ? true
5/8 < 5/4 ? true
5/16 < 5/8 ? true
Apr 8 2021, 11:00 AM · Restricted Project
bmahjour added a comment to D100121: [LV] Let selectVectorizationFactor reason directly on VectorizationFactor..

The patch isn't entirely NFC because it also fixes an issue in selectEpilogueVectorizationFactor, where the cost passed to ProfitableVFs is no longer the total cost, but rather the cost per lane which is also what is used to determine the VF for the vector body loop.

Apr 8 2021, 9:50 AM · Restricted Project
bmahjour added a comment to D98475: [LoopInterchange] Fix transformation bugs in loop interchange.

I committed and reverted the patch since it fails x86 sanitizer check. The reason is that after the patch, the variable LoopExit becomes unused.

Now I removed LoopExit, I'd appreciate if you could take a look @bmahjour, thanks a lot!

Apr 8 2021, 9:12 AM · Restricted Project

Apr 7 2021

bmahjour accepted D98475: [LoopInterchange] Fix transformation bugs in loop interchange.

LGTM

Apr 7 2021, 11:23 AM · Restricted Project

Apr 6 2021

bmahjour added inline comments to D98475: [LoopInterchange] Fix transformation bugs in loop interchange.
Apr 6 2021, 1:46 PM · Restricted Project
bmahjour added a comment to D98475: [LoopInterchange] Fix transformation bugs in loop interchange.

Thanks for fixing this problem. I just have some comments about the tests, otherwise LGTM.

Apr 6 2021, 1:43 PM · Restricted Project

Mar 17 2021

bmahjour committed rGfa9d8ace09b4: [CGSCC] Print CG node itself instead of its address (authored by bmahjour).
[CGSCC] Print CG node itself instead of its address
Mar 17 2021, 9:39 AM

Mar 3 2021

bmahjour accepted D97747: [LoopUnrollRuntime] Add option to assume the non latch exit block to be predictable..
Mar 3 2021, 10:55 AM · Restricted Project
bmahjour added inline comments to D97747: [LoopUnrollRuntime] Add option to assume the non latch exit block to be predictable..
Mar 3 2021, 10:03 AM · Restricted Project
bmahjour added inline comments to D97747: [LoopUnrollRuntime] Add option to assume the non latch exit block to be predictable..
Mar 3 2021, 8:39 AM · Restricted Project
bmahjour added inline comments to D97747: [LoopUnrollRuntime] Add option to assume the non latch exit block to be predictable..
Mar 3 2021, 7:38 AM · Restricted Project
bmahjour added inline comments to D97747: [LoopUnrollRuntime] Add option to assume the non latch exit block to be predictable..
Mar 3 2021, 7:03 AM · Restricted Project

Mar 2 2021

bmahjour added inline comments to D97747: [LoopUnrollRuntime] Add option to assume the non latch exit block to be predictable..
Mar 2 2021, 10:48 AM · Restricted Project
bmahjour added inline comments to D97747: [LoopUnrollRuntime] Add option to assume the non latch exit block to be predictable..
Mar 2 2021, 8:42 AM · Restricted Project

Jan 7 2021

bmahjour committed rG573d57824828: [DDG] Data Dependence Graph - DOT printer tests (authored by bmahjour).
[DDG] Data Dependence Graph - DOT printer tests
Jan 7 2021, 7:53 AM
bmahjour closed D93949: [DDG] Data Dependence Graph - DOT printer tests.
Jan 7 2021, 7:53 AM · Restricted Project
bmahjour committed rGebfe4de2c04b: [DDG] Fix duplicate edge removal during pi-block formation (authored by bmahjour).
[DDG] Fix duplicate edge removal during pi-block formation
Jan 7 2021, 7:35 AM
bmahjour closed D94094: [DDG] Fix duplicate edge removal during pi-block formation.
Jan 7 2021, 7:35 AM · Restricted Project
bmahjour updated the diff for D94094: [DDG] Fix duplicate edge removal during pi-block formation.

clang-format

Jan 7 2021, 7:28 AM · Restricted Project

Jan 6 2021

bmahjour added a reviewer for D94176: [SplitEdge] Add new parameter to SplitEdge to name the newly created basic block: jamieschmeiser.
Jan 6 2021, 1:13 PM · Restricted Project

Jan 5 2021

bmahjour requested review of D94094: [DDG] Fix duplicate edge removal during pi-block formation.
Jan 5 2021, 8:36 AM · Restricted Project

Dec 30 2020

bmahjour added a comment to D90159: [DDG] Data Dependence Graph - DOT printer .

Should this have some tests? Even if guarded by REQUIRES: if some feature is needed.

Dec 30 2020, 11:42 AM · Restricted Project, Restricted Project
bmahjour requested review of D93949: [DDG] Data Dependence Graph - DOT printer tests.
Dec 30 2020, 11:40 AM · Restricted Project

Dec 18 2020

bmahjour added inline comments to D78938: Make LLVM build in C++20 mode.
Dec 18 2020, 2:52 PM · Restricted Project, Restricted Project

Dec 16 2020

bmahjour committed rG6eff12788ee8: [DDG] Data Dependence Graph - DOT printer - recommit (authored by bmahjour).
[DDG] Data Dependence Graph - DOT printer - recommit
Dec 16 2020, 9:38 AM
bmahjour added a comment to D90159: [DDG] Data Dependence Graph - DOT printer .

Can I help fixing the Windows build problem?

I think I have a fix (please see the updated patch), but don't have access to a windows machine to verify. Would you be able to try building with MSVC and let me know if it passes?

Dec 16 2020, 9:31 AM · Restricted Project, Restricted Project

Dec 15 2020

bmahjour updated the diff for D90159: [DDG] Data Dependence Graph - DOT printer .
Dec 15 2020, 7:17 AM · Restricted Project, Restricted Project
bmahjour added a comment to D90159: [DDG] Data Dependence Graph - DOT printer .

Can I help fixing the Windows build problem?

Dec 15 2020, 7:17 AM · Restricted Project, Restricted Project

Dec 14 2020

bmahjour added a reverting change for rGfd4a10732c8b: [DDG] Data Dependence Graph - DOT printer: rGa29ecca7819a: Revert "[DDG] Data Dependence Graph - DOT printer".
Dec 14 2020, 1:55 PM
bmahjour committed rGa29ecca7819a: Revert "[DDG] Data Dependence Graph - DOT printer" (authored by bmahjour).
Revert "[DDG] Data Dependence Graph - DOT printer"
Dec 14 2020, 1:55 PM
bmahjour added a reverting change for D90159: [DDG] Data Dependence Graph - DOT printer : rGa29ecca7819a: Revert "[DDG] Data Dependence Graph - DOT printer".
Dec 14 2020, 1:55 PM · Restricted Project, Restricted Project
bmahjour committed rGfd4a10732c8b: [DDG] Data Dependence Graph - DOT printer (authored by bmahjour).
[DDG] Data Dependence Graph - DOT printer
Dec 14 2020, 1:42 PM
bmahjour closed D90159: [DDG] Data Dependence Graph - DOT printer .
Dec 14 2020, 1:42 PM · Restricted Project, Restricted Project
bmahjour updated the diff for D90159: [DDG] Data Dependence Graph - DOT printer .

fix formatting and use interleaveComma instead of interleave.

Dec 14 2020, 1:07 PM · Restricted Project, Restricted Project
bmahjour accepted D93063: [LV] Disable epilogue vectorization for scalable VFs.

LGTM

Dec 14 2020, 7:38 AM · Restricted Project

Dec 10 2020

bmahjour added inline comments to D93063: [LV] Disable epilogue vectorization for scalable VFs.
Dec 10 2020, 1:23 PM · Restricted Project

Dec 9 2020

bmahjour added inline comments to D90159: [DDG] Data Dependence Graph - DOT printer .
Dec 9 2020, 12:17 PM · Restricted Project, Restricted Project
bmahjour updated the diff for D90159: [DDG] Data Dependence Graph - DOT printer .

Thanks for the review @Meinersbur and sorry for taking so long to address your comments.

Dec 9 2020, 12:16 PM · Restricted Project, Restricted Project

Dec 8 2020

bmahjour committed rG4c70b6ee45e8: [LV] Make optimal-epilog-vectorization-profitability.ll more robust (authored by bmahjour).
[LV] Make optimal-epilog-vectorization-profitability.ll more robust
Dec 8 2020, 9:35 AM

Dec 7 2020

bmahjour added a comment to D89566: [LV] Epilogue Vectorization with Optimal Control Flow.

Should this really be enabled by default given the current (lack of) cost modelling? Primarily concerned about the code size regression this causes.

Dec 7 2020, 1:45 PM · Restricted Project
bmahjour committed rG4db9b78c8146: [LV] Epilogue Vectorization with Optimal Control Flow - Default Enablement (authored by bmahjour).
[LV] Epilogue Vectorization with Optimal Control Flow - Default Enablement
Dec 7 2020, 11:30 AM

Dec 2 2020

bmahjour added a comment to D84951: [LV] Try to sink users recursively for first-order recurrences..

Sorry, I meant to do a more thorough review before approving. I had a closer look today and found some nits and a couple of questions. Please see inline comments.

Dec 2 2020, 3:39 PM · Restricted Project
bmahjour added a comment to D89566: [LV] Epilogue Vectorization with Optimal Control Flow.

OK great. It sounds like there's agreement on the further direction overall and we can work on that in-tree. I'll work on getting the pieces ready to handle live-ins/live-outs in VPlan as required. As for the sekeleton creator, I might be able to take a look over the next week.

LGTM, thanks (meant to respond a bit earlier today :)

Dec 2 2020, 7:15 AM · Restricted Project
bmahjour committed rGa7e2c2693997: [LV] Epilogue Vectorization with Optimal Control Flow (Recommit) (authored by bmahjour).
[LV] Epilogue Vectorization with Optimal Control Flow (Recommit)
Dec 2 2020, 7:10 AM

Dec 1 2020

bmahjour added a reverting change for rG9c5504adceb5: [LV] Epilogue Vectorization with Optimal Control Flow: rGc94af03f7f32: Revert "[LV] Epilogue Vectorization with Optimal Control Flow".
Dec 1 2020, 9:51 AM
bmahjour added a reverting change for D89566: [LV] Epilogue Vectorization with Optimal Control Flow: rGc94af03f7f32: Revert "[LV] Epilogue Vectorization with Optimal Control Flow".
Dec 1 2020, 9:51 AM · Restricted Project
bmahjour committed rGc94af03f7f32: Revert "[LV] Epilogue Vectorization with Optimal Control Flow" (authored by bmahjour).
Revert "[LV] Epilogue Vectorization with Optimal Control Flow"
Dec 1 2020, 9:51 AM
bmahjour committed rG9c5504adceb5: [LV] Epilogue Vectorization with Optimal Control Flow (authored by bmahjour).
[LV] Epilogue Vectorization with Optimal Control Flow
Dec 1 2020, 9:05 AM
bmahjour closed D89566: [LV] Epilogue Vectorization with Optimal Control Flow.
Dec 1 2020, 9:05 AM · Restricted Project

Nov 27 2020

bmahjour added inline comments to D89566: [LV] Epilogue Vectorization with Optimal Control Flow.
Nov 27 2020, 2:19 PM · Restricted Project
bmahjour updated the diff for D89566: [LV] Epilogue Vectorization with Optimal Control Flow.
Nov 27 2020, 2:19 PM · Restricted Project
bmahjour added inline comments to D89566: [LV] Epilogue Vectorization with Optimal Control Flow.
Nov 27 2020, 7:37 AM · Restricted Project

Nov 26 2020

bmahjour updated the diff for D89566: [LV] Epilogue Vectorization with Optimal Control Flow.

Forgot to remove target triple and attributes from target independent tests. They're fixed now.

Nov 26 2020, 12:58 PM · Restricted Project
bmahjour updated the diff for D89566: [LV] Epilogue Vectorization with Optimal Control Flow.
Nov 26 2020, 12:46 PM · Restricted Project