Page MenuHomePhabricator

bmahjour (Bardia Mahjour)
User

Projects

User does not belong to any projects.

User Details

User Since
May 3 2019, 8:38 AM (23 w, 3 d)

Recent Activity

Thu, Oct 10

bmahjour added a comment to D68789: [LoopNest]: Analysis to discover properties of a loop nest..

typo in title: [LoopNext] -> [LoopNest]

Thu, Oct 10, 1:16 PM · Restricted Project
bmahjour created D68827: [DDG] Data Dependence Graph - Pi Block.
Thu, Oct 10, 1:16 PM · Restricted Project
bmahjour added a comment to D68789: [LoopNest]: Analysis to discover properties of a loop nest..

The motivation for this patch was discussed at the latest meeting of the LLVM loop group (https://ibm.box.com/s/xn1sfd80jkpfssiqhal6t88yvzxebcex).

Thu, Oct 10, 9:08 AM · Restricted Project

Tue, Oct 8

bmahjour added a comment to D68474: [DirectedGraph]: Add setTargetNode member function.

LGTM, but I'll let another reviewer give the green light :)

Tue, Oct 8, 7:38 AM · Restricted Project

Thu, Oct 3

bmahjour committed rGf6c34de11767: [PGO] Refactor Value Profiling into a plugin based oracle and create a well… (authored by bmahjour).
[PGO] Refactor Value Profiling into a plugin based oracle and create a well…
Thu, Oct 3, 7:21 AM
bmahjour committed rL373601: [PGO] Refactor Value Profiling into a plugin based oracle and create a well….
[PGO] Refactor Value Profiling into a plugin based oracle and create a well…
Thu, Oct 3, 7:19 AM
bmahjour closed D67920: [PGO] Refactor Value Profiling into a plugin based oracle and create a well defined API for the plugins..
Thu, Oct 3, 7:18 AM · Restricted Project

Tue, Oct 1

bmahjour committed rG91b62d5c89ef: [DDG] Data Dependence Graph - Root Node (authored by bmahjour).
[DDG] Data Dependence Graph - Root Node
Tue, Oct 1, 12:32 PM
bmahjour committed rL373386: [DDG] Data Dependence Graph - Root Node.
[DDG] Data Dependence Graph - Root Node
Tue, Oct 1, 12:31 PM
bmahjour closed D67970: [DDG] Data Dependence Graph - Root Node.
Tue, Oct 1, 12:31 PM · Restricted Project

Mon, Sep 30

bmahjour updated the diff for D67970: [DDG] Data Dependence Graph - Root Node.
Mon, Sep 30, 11:38 AM · Restricted Project
bmahjour removed a reviewer for D67970: [DDG] Data Dependence Graph - Root Node: ppc-slack.
Mon, Sep 30, 11:35 AM · Restricted Project
Herald added a reviewer for D67970: [DDG] Data Dependence Graph - Root Node: ppc-slack.

Do I understand it correctly, that this node is added to avoid having to deal with forests?

Kind of. The graph prior to creation of pi-blocks is not a DAG and may have disjoint components. The root node is needed to turn it into a "rooted digraph" making it easier to compute all the strongly connected components. Prior to creating the root, the graph is similar to a forest, but technically speaking it's not a forest because the components may not be trees.

Mon, Sep 30, 11:32 AM · Restricted Project

Tue, Sep 24

bmahjour created D67970: [DDG] Data Dependence Graph - Root Node.
Tue, Sep 24, 9:36 AM · Restricted Project

Wed, Sep 18

bmahjour committed rGdb800c267d8f: Data Dependence Graph Basics (authored by bmahjour).
Data Dependence Graph Basics
Wed, Sep 18, 10:49 AM
bmahjour committed rL372238: Data Dependence Graph Basics.
Data Dependence Graph Basics
Wed, Sep 18, 10:49 AM

Tue, Sep 17

bmahjour committed rG6476d7cf0b2b: Revert "Data Dependence Graph Basics" (authored by bmahjour).
Revert "Data Dependence Graph Basics"
Tue, Sep 17, 12:22 PM
bmahjour added a reverting change for rGc98ec60993a7: Data Dependence Graph Basics: rG6476d7cf0b2b: Revert "Data Dependence Graph Basics".
Tue, Sep 17, 12:22 PM
bmahjour committed rL372168: Revert "Data Dependence Graph Basics".
Revert "Data Dependence Graph Basics"
Tue, Sep 17, 12:22 PM
bmahjour committed rGc98ec60993a7: Data Dependence Graph Basics (authored by bmahjour).
Data Dependence Graph Basics
Tue, Sep 17, 11:58 AM
bmahjour committed rL372162: Data Dependence Graph Basics.
Data Dependence Graph Basics
Tue, Sep 17, 11:54 AM
bmahjour closed D65350: [DDG] Data Dependence Graph Basics.
Tue, Sep 17, 11:54 AM · Restricted Project
bmahjour committed rL372140: Request commit access for bmahjour.
Request commit access for bmahjour
Tue, Sep 17, 9:52 AM

Mon, Sep 16

bmahjour committed rG474c713fc75b: [NFC] Test commit access (authored by bmahjour).
[NFC] Test commit access
Mon, Sep 16, 1:46 PM
bmahjour committed rL372033: [NFC] Test commit access.
[NFC] Test commit access
Mon, Sep 16, 1:46 PM

Sep 12 2019

bmahjour added a comment to D65350: [DDG] Data Dependence Graph Basics.

ping

Sep 12 2019, 6:40 AM · Restricted Project

Sep 6 2019

bmahjour added inline comments to D65350: [DDG] Data Dependence Graph Basics.
Sep 6 2019, 2:13 PM · Restricted Project
bmahjour updated the diff for D65350: [DDG] Data Dependence Graph Basics.

Addressed latest round of review comments.

Sep 6 2019, 12:47 PM · Restricted Project
bmahjour added a comment to D65350: [DDG] Data Dependence Graph Basics.

Thanks for the docs! Could you clarify the difference between paper and implementation? The implementations looks fine, apart a few nits.

Sep 6 2019, 12:41 PM · Restricted Project

Sep 5 2019

bmahjour added a comment to D65350: [DDG] Data Dependence Graph Basics.

This patch contains support for a basic DDGs containing only atomic nodes (one node for each instruction). The edges are two fold: def-use edges and memory-dependence edges. The idea behind the DependenceGraphBuilder and why we need it are summarized in https://ibm.ent.box.com/v/directed-graph-and-ddg.

I think it would be good to summarize the information in-tree as well, to ensure the information is accessible later on as well. Some of the docs fit in the headers, for some of it a new documentation page might be worth adding. Ideally it would include some info about design decisions, the intended/example uses cases and how the DDG helps and the benefits over the existing infrastructure.

Sure I can create a page or two of documentation, however I'm not very familiar with the doc infrastructure in LLVM. Could you point me to some examples to follow? Would an rts file under llvm/docs/DDG be sufficient? Are they rendered by any tool and if so how can I test it?

Great thanks! Yep adding a .rts should be sufficient. I think you need sphinx installed to build the docs and set LLVM_BUILD_DOCS.

No Problem. Thank you for bringing it up. The latest uploaded patch contains the .rst and the relevant images.

Sep 5 2019, 7:15 AM · Restricted Project

Aug 29 2019

bmahjour updated the diff for D65350: [DDG] Data Dependence Graph Basics.

Created a documentation in tree with diagrams and words describing the high level design.

Aug 29 2019, 1:37 PM · Restricted Project

Aug 21 2019

bmahjour added a comment to D65350: [DDG] Data Dependence Graph Basics.

This patch contains support for a basic DDGs containing only atomic nodes (one node for each instruction). The edges are two fold: def-use edges and memory-dependence edges. The idea behind the DependenceGraphBuilder and why we need it are summarized in https://ibm.ent.box.com/v/directed-graph-and-ddg.

I think it would be good to summarize the information in-tree as well, to ensure the information is accessible later on as well. Some of the docs fit in the headers, for some of it a new documentation page might be worth adding. Ideally it would include some info about design decisions, the intended/example uses cases and how the DDG helps and the benefits over the existing infrastructure.

Aug 21 2019, 9:02 AM · Restricted Project
bmahjour added inline comments to D65350: [DDG] Data Dependence Graph Basics.
Aug 21 2019, 8:29 AM · Restricted Project
bmahjour updated the diff for D65350: [DDG] Data Dependence Graph Basics.

Addressed the latest round of review comments.

Aug 21 2019, 8:21 AM · Restricted Project

Aug 14 2019

bmahjour added a comment to D65350: [DDG] Data Dependence Graph Basics.

A friendly reminder to kindly review and provide comments/approval. Thank you!

Aug 14 2019, 10:43 AM · Restricted Project

Jul 31 2019

bmahjour updated the diff for D65350: [DDG] Data Dependence Graph Basics.

Addressed comments from Michael and Min-Yih.

Jul 31 2019, 12:28 PM · Restricted Project
bmahjour added a comment to D65350: [DDG] Data Dependence Graph Basics.

Addressed comments from Michael and Min-Yih.

Jul 31 2019, 12:26 PM · Restricted Project

Jul 26 2019

bmahjour created D65350: [DDG] Data Dependence Graph Basics.
Jul 26 2019, 2:41 PM · Restricted Project

Jul 15 2019

bmahjour updated the diff for D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

Address comments on the unit test.

Jul 15 2019, 7:33 AM · Restricted Project

Jul 12 2019

bmahjour added inline comments to D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..
Jul 12 2019, 10:27 AM · Restricted Project
bmahjour added a comment to D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

To not to be stuck in details and not block the dependence graph patches, we maybe should land the patch and work on it in-tree when its users materialize?

Sounds good, but I think to land it, it would be good if we have some unit tests for the current implementation, to make sure it builds, we don’t regress and have sanitizer coverage.

Jul 12 2019, 10:24 AM · Restricted Project
bmahjour updated the diff for D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

Address more review comments.

Jul 12 2019, 10:23 AM · Restricted Project

Jul 10 2019

bmahjour updated the diff for D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

Address second round of comments from Michael and Florian.

Jul 10 2019, 2:12 PM · Restricted Project
bmahjour added a comment to D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

To reduce the number of allocations, have you thought about making EdgeList contain the edges objects instead of pointers? The edges would have to be copied/moved into the list and edges could not be compared by identity. Is this semantic needed/are edge objects large?

Since the edge class does not contain the source node, the same edge object could be put into multiple outgoing edges lists. Is this supported?

I think we would be better off using pointers in this case, because of the following reasons:

  1. Using pointers gives the clients freedom to use polymorphic behavior.

I don't see why you would go the way implementing compile-time template polymorphism, but introduce vtables in derived classes.

I actually just realized that we cannot have a container of objects due to the CRTP idiom, because the edge type is not a complete type yet. If we don't use static polymorphism, then we need to use dynamic polymorphism and that requires a container of pointers. Either way we need to store pointers, it seems.

Jul 10 2019, 12:21 PM · Restricted Project

Jul 9 2019

bmahjour added a comment to D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

To reduce the number of allocations, have you thought about making EdgeList contain the edges objects instead of pointers? The edges would have to be copied/moved into the list and edges could not be compared by identity. Is this semantic needed/are edge objects large?

Since the edge class does not contain the source node, the same edge object could be put into multiple outgoing edges lists. Is this supported?

Jul 9 2019, 2:14 PM · Restricted Project
bmahjour added inline comments to D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..
Jul 9 2019, 2:11 PM · Restricted Project
bmahjour updated the diff for D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

Address Michael's review comments.

Jul 9 2019, 1:48 PM · Restricted Project

Jul 4 2019

bmahjour added a comment to D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

Tests missing.

Jul 4 2019, 1:15 PM · Restricted Project
bmahjour added a comment to D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..

Is there any plan on supporting GraphTraits in this patch?

Jul 4 2019, 1:08 PM · Restricted Project
bmahjour updated the summary of D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..
Jul 4 2019, 6:56 AM · Restricted Project

Jul 2 2019

bmahjour created D64088: [DDG] DirectedGraph as a base class for various dependence graphs such as DDG and PDG..
Jul 2 2019, 11:01 AM · Restricted Project

Jun 4 2019

bmahjour added a reviewer for D62610: [DA] Add an option to control delinearization validity checks: fhahn.
Jun 4 2019, 2:06 PM · Restricted Project
bmahjour updated the diff for D62610: [DA] Add an option to control delinearization validity checks.

formatting change to reduce the number of new lines in the options description.

Jun 4 2019, 12:59 PM · Restricted Project
bmahjour updated the diff for D62610: [DA] Add an option to control delinearization validity checks.

Renamed the option to -da-disable-delinearization-checks and set the default value to "false". Updated LIT tests accordingly.

Jun 4 2019, 12:47 PM · Restricted Project

Jun 3 2019

bmahjour added a comment to D62610: [DA] Add an option to control delinearization validity checks.

I would have liked to invert the option though. Most similar options are set up such that they allow to opt-out of the sound behavior.

Jun 3 2019, 9:15 AM · Restricted Project

May 30 2019

bmahjour added a comment to D62610: [DA] Add an option to control delinearization validity checks.

As a debugging tool, this sounds fine. Not so sure about the tests, but I guess they are not hurting anyone :) And show good room for improvement.

Do you have any ideas how we might get the llvm form of them we have here (not the c form) to give good DA results without the miscompiles that the new option would produce? I was wondering if it was worth trying to get DA to return a dependency that is conditional on a set of predicates. Clients (we only have 3 at the moment) could treat predicated dependencies as "confused", or version the loop based on them.

May 30 2019, 2:42 PM · Restricted Project

May 29 2019

bmahjour created D62610: [DA] Add an option to control delinearization validity checks.
May 29 2019, 10:08 AM · Restricted Project