Page MenuHomePhabricator

baziotis (Stefanos Baziotis)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 12 2019, 1:37 PM (171 w, 3 d)

Recent Activity

Jun 11 2021

baziotis accepted D103861: [Attributor] Look through selects in genericValueTraversal.

Oh, don't mind me, LGTM!
IMHO, the documentation is fine if the readier gets some hint that they should look at it :P Sth like:

bool BestPossible = !C.hasValue();
bool SecondBest = isa_and_nonnull<UndefValue>(*C);

might do the trick. Like, they will either get it, or they will see that they don't get it and they'll check the doc. But I don't know if you like the style, maybe too verbose.

Jun 11 2021, 12:16 PM · Restricted Project
baziotis added inline comments to D103861: [Attributor] Look through selects in genericValueTraversal.
Jun 11 2021, 10:12 AM · Restricted Project

Jun 10 2021

baziotis added inline comments to D103861: [Attributor] Look through selects in genericValueTraversal.
Jun 10 2021, 6:59 PM · Restricted Project
baziotis added inline comments to D103861: [Attributor] Look through selects in genericValueTraversal.
Jun 10 2021, 5:43 PM · Restricted Project
baziotis added a comment to D103861: [Attributor] Look through selects in genericValueTraversal.

LGTM although I've missed a lot of progress in the Attributor so definitely wait for other reviewers if you want an acceptance to move it forward :)

Jun 10 2021, 4:34 PM · Restricted Project

Jun 7 2021

baziotis added inline comments to D103861: [Attributor] Look through selects in genericValueTraversal.
Jun 7 2021, 6:18 PM · Restricted Project

Oct 29 2020

baziotis committed rGa3345300b6f5: [LCSSA] Doc for special treatment of PHIs (authored by baziotis).
[LCSSA] Doc for special treatment of PHIs
Oct 29 2020, 1:50 PM
baziotis closed D89739: [LCSSA] Doc for special treatment of PHIs.
Oct 29 2020, 1:50 PM · Restricted Project
baziotis updated the diff for D89739: [LCSSA] Doc for special treatment of PHIs.

Remove unnecessary text

Oct 29 2020, 1:47 PM · Restricted Project
baziotis updated the diff for D89739: [LCSSA] Doc for special treatment of PHIs.

Small fixes

Oct 29 2020, 1:26 PM · Restricted Project

Oct 28 2020

baziotis updated the diff for D89739: [LCSSA] Doc for special treatment of PHIs.

That might be too big of a footnote and it might even be more suitable to be added in the phi doc in the LangRef. Nevertheless, it feels complete and valuable now :)

Oct 28 2020, 12:20 PM · Restricted Project
baziotis added inline comments to D89739: [LCSSA] Doc for special treatment of PHIs.
Oct 28 2020, 3:27 AM · Restricted Project

Oct 26 2020

baziotis added inline comments to D89739: [LCSSA] Doc for special treatment of PHIs.
Oct 26 2020, 1:16 PM · Restricted Project
baziotis updated the diff for D89739: [LCSSA] Doc for special treatment of PHIs.

Addressed comments.

Oct 26 2020, 1:12 PM · Restricted Project
baziotis added inline comments to D89739: [LCSSA] Doc for special treatment of PHIs.
Oct 26 2020, 12:50 PM · Restricted Project

Oct 21 2020

baziotis updated the diff for D89739: [LCSSA] Doc for special treatment of PHIs.

Shortened comments and moved a more detailed explanation in loop terminology/LCSSA doc.

Oct 21 2020, 1:58 AM · Restricted Project
baziotis added a comment to D89739: [LCSSA] Doc for special treatment of PHIs.

Some resources that might help:

Oct 21 2020, 1:06 AM · Restricted Project

Oct 20 2020

baziotis added inline comments to D89739: [LCSSA] Doc for special treatment of PHIs.
Oct 20 2020, 3:25 AM · Restricted Project

Oct 19 2020

baziotis added inline comments to D89739: [LCSSA] Doc for special treatment of PHIs.
Oct 19 2020, 2:13 PM · Restricted Project
baziotis requested review of D89739: [LCSSA] Doc for special treatment of PHIs.
Oct 19 2020, 2:13 PM · Restricted Project

Oct 5 2020

baziotis abandoned D88183: [LoopInfo] Clarify header-loop relationship.
Oct 5 2020, 8:39 AM · Restricted Project
baziotis added a comment to D88183: [LoopInfo] Clarify header-loop relationship.

With D88408 have been committed, can this be abandoned?

Oct 5 2020, 8:39 AM · Restricted Project

Sep 29 2020

baziotis added a comment to D88408: [docs] Revise loop terminology reference..

It would be part of the LoopSimplify normal form, ensured by the preheader and dedicated exit blocks. Otherwise, it's more a concept for CFGs than loops.

Sep 29 2020, 8:49 AM · Restricted Project
baziotis added a comment to D88408: [docs] Revise loop terminology reference..

Btw, do you think it's good to desribe what is a critical edge in this doc ? I think it's mentioned quite often in anything loop-related.

Sep 29 2020, 6:50 AM · Restricted Project
baziotis accepted D88408: [docs] Revise loop terminology reference..

I think the document is more useful as a reference than a text-book reading.

Sep 29 2020, 4:19 AM · Restricted Project

Sep 28 2020

baziotis added a comment to D88408: [docs] Revise loop terminology reference..

What do you think of the revision? Does it clarify things? Is it more understandable?

Sep 28 2020, 5:12 PM · Restricted Project
baziotis added a comment to D88408: [docs] Revise loop terminology reference..

Thanks for taking the time to write this! I think it will help, especially beginners. I remember when I first read the loop terminology, some things were not obvious that are cleared here (e.g. why do people use backedge taken count).

Sep 28 2020, 6:54 AM · Restricted Project

Sep 24 2020

baziotis added a comment to D88183: [LoopInfo] Clarify header-loop relationship.

There are different definitions of loops. In the literature, such as a Dragon Book, a loop is identified by a backedge, but LLVM does it with its header. But only natural loops have a header: that is, not all cyclic control flow is represented by LoopInfo. Cyclic control flow that is is not form a natural loop is called irreducible control flow.

Anyway, using SCCs to stand for loops is bad as well since it ignores subloops. It should be a induced subgraph, not component. I think I raised this in the first review, but it was committed anyway. I'd be grateful if this could be cleaned up.

Sep 24 2020, 1:05 PM · Restricted Project

Sep 23 2020

baziotis requested review of D88183: [LoopInfo] Clarify header-loop relationship.
Sep 23 2020, 2:22 PM · Restricted Project
baziotis committed rG7aa982a57ce0: [LoopTerminology][NFC] Fix formatting typo (authored by baziotis).
[LoopTerminology][NFC] Fix formatting typo
Sep 23 2020, 12:54 PM

Sep 22 2020

baziotis updated subscribers of D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().

API changes may cause problems to other backends. It is a good idea to test -DLLVM_TARGETS_TO_BUILD=ALL

Sep 22 2020, 5:16 PM · Restricted Project
baziotis committed rGa7873e5abc65: Small fixes for "[LoopInfo] empty() -> isInnermost(), add isOutermost()" (authored by baziotis).
Small fixes for "[LoopInfo] empty() -> isInnermost(), add isOutermost()"
Sep 22 2020, 2:00 PM
baziotis committed rG89c1e35f3c50: [LoopInfo] empty() -> isInnermost(), add isOutermost() (authored by baziotis).
[LoopInfo] empty() -> isInnermost(), add isOutermost()
Sep 22 2020, 1:29 PM
baziotis closed D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().
Sep 22 2020, 1:29 PM · Restricted Project
baziotis added inline comments to D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().
Sep 22 2020, 11:23 AM · Restricted Project
baziotis updated the diff for D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().

Address comments

Sep 22 2020, 11:21 AM · Restricted Project

Sep 19 2020

baziotis updated the diff for D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().

@baziotis Are you going to update this diff?

Sep 19 2020, 8:23 AM · Restricted Project

Aug 28 2020

baziotis added inline comments to D86696: [Attributor][WIP] Introduce Loop AA.
Aug 28 2020, 1:07 PM · Restricted Project
baziotis added inline comments to D86696: [Attributor][WIP] Introduce Loop AA.
Aug 28 2020, 9:37 AM · Restricted Project
baziotis added inline comments to D86696: [Attributor][WIP] Introduce Loop AA.
Aug 28 2020, 8:48 AM · Restricted Project

Aug 27 2020

baziotis added inline comments to D86696: [Attributor][WIP] Introduce Loop AA.
Aug 27 2020, 6:17 AM · Restricted Project
baziotis added inline comments to D86696: [Attributor][WIP] Introduce Loop AA.
Aug 27 2020, 5:52 AM · Restricted Project

Jul 30 2020

baziotis added a comment to D84608: [LAA] Avoid adding pointers to the checks if they are not needed..

Thanks for taking a look @baziotis & @anemet !

Instead of accumulating in AccessInfos, couldn't we just reiterate the alias set (if we didn't bail out)?

Yes, I think either approach is fine. The current way avoids a few repeated lookups, but in the grand scheme of things I don't think it makes a big difference.

You mean in Accesses.. Well, since the iteration in an AliasSet is deterministic we could also only save the bools in a BitVector and both save memory and not do lookups. But never mind if you consider it overthinking / nitpicking.

Yeah, this code is very unlikely to be performance critical, so IMO we should try to make the code as straight-forward as possible. I think it would be good to stick with the version in the patch initially and potentially do follow-on improvements as follow-up patches.

Jul 30 2020, 7:40 AM · Restricted Project

Jul 28 2020

baziotis committed rGdb0d636e52c1: [ADT][BitVector][NFC] Merge find_first_in() / find_first_unset_in() (authored by baziotis).
[ADT][BitVector][NFC] Merge find_first_in() / find_first_unset_in()
Jul 28 2020, 6:52 PM
baziotis closed D84717: [ADT][BitVector][NFC] Merge find_first_in() / find_first_unset_in().
Jul 28 2020, 6:52 PM · Restricted Project
baziotis updated the diff for D84717: [ADT][BitVector][NFC] Merge find_first_in() / find_first_unset_in().
  • Added doc.
Jul 28 2020, 6:42 PM · Restricted Project
baziotis added a comment to D84717: [ADT][BitVector][NFC] Merge find_first_in() / find_first_unset_in().

LGTM

One proposal by a friend of mine, GeorgeLS, is that we can make a wrapper in which instead of passing a bool, we pass a BitWord.
And then we XOR with this BitWord every BitWord we read from Bits. So, the passed BitWord acts conditionally. If we want the "unset" version, we pass ~0.
If we want the "set" version, we pass 0.

An optimizing compiler might already do this if it thinks it is profitable. That is, InstCombine

if (!Set)
  Copy = ~Copy;

to

Mask = Set ? 0 : -1;
Copy ^= Mask;

and hoist Mask out of the loop.

However, unless you show that there is a relevant performance difference, I don't have a preference for either version.

Jul 28 2020, 6:32 PM · Restricted Project
baziotis added inline comments to D84733: [Attributor] Check nonnull attribute violation in AAUndefinedBehavior.
Jul 28 2020, 7:35 AM · Restricted Project
baziotis added inline comments to D84733: [Attributor] Check nonnull attribute violation in AAUndefinedBehavior.
Jul 28 2020, 6:55 AM · Restricted Project
baziotis added a comment to D84717: [ADT][BitVector][NFC] Merge find_first_in() / find_first_unset_in().

Please can you add unit test coverage at llvm/unittest/ADT/BitVectorTest.cpp

Jul 28 2020, 3:36 AM · Restricted Project
baziotis retitled D84717: [ADT][BitVector][NFC] Merge find_first_in() / find_first_unset_in() from [ADT][BitVector] Merge find_first_in() / find_first_unset_in() to [ADT][BitVector][NFC] Merge find_first_in() / find_first_unset_in().
Jul 28 2020, 3:35 AM · Restricted Project
baziotis added a comment to D84717: [ADT][BitVector][NFC] Merge find_first_in() / find_first_unset_in().

One proposal by a friend of mine, GeorgeLS, is that we can make a wrapper in which instead of passing a bool, we pass a BitWord.
And then we XOR with this BitWord every BitWord we read from Bits. So, the passed BitWord acts conditionally. If we want the "unset" version, we pass ~0.
If we want the "set" version, we pass 0.

Jul 28 2020, 2:14 AM · Restricted Project
baziotis updated the diff for D84717: [ADT][BitVector][NFC] Merge find_first_in() / find_first_unset_in().

Addressed comments.

Jul 28 2020, 1:50 AM · Restricted Project

Jul 27 2020

Herald added a project to D84717: [ADT][BitVector][NFC] Merge find_first_in() / find_first_unset_in(): Restricted Project.
Jul 27 2020, 5:47 PM · Restricted Project
baziotis added a comment to D84608: [LAA] Avoid adding pointers to the checks if they are not needed..

Apart from that, now that I'm seeing it again, in LAA, we probably want to move a lot of vectors out of loops and just reset() them.

Jul 27 2020, 1:52 PM · Restricted Project
baziotis added a comment to D84608: [LAA] Avoid adding pointers to the checks if they are not needed..

Instead of accumulating in AccessInfos, couldn't we just reiterate the alias set (if we didn't bail out)?

Yes, I think either approach is fine. The current way avoids a few repeated lookups, but in the grand scheme of things I don't think it makes a big difference.

Jul 27 2020, 1:47 PM · Restricted Project

Jul 26 2020

baziotis added a comment to D84608: [LAA] Avoid adding pointers to the checks if they are not needed..

Instead of accumulating in AccessInfos, couldn't we just reiterate the alias set (if we didn't bail out)?

Jul 26 2020, 3:55 PM · Restricted Project

Jul 17 2020

baziotis added inline comments to D83283: [Attributor] AAPotentialValues Interface.
Jul 17 2020, 5:15 AM · Restricted Project

Jul 14 2020

baziotis added a comment to D83283: [Attributor] AAPotentialValues Interface.

The code is quite good and clean. Most comments are on the doc so that we can make it good and clean too and move to the full patch.

Jul 14 2020, 3:09 AM · Restricted Project

Jul 13 2020

baziotis added a comment to D83283: [Attributor] AAPotentialValues Interface.

A nit comment is to please start comments with caps.

Jul 13 2020, 3:32 AM · Restricted Project

Jul 8 2020

baziotis added a comment to D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().

Hm, adding multiple ways to check the same thing may lead to other problems. IMO it will be more confusing if some places use !L->getParentLoop() and other L->isOutermost().

There are often multiple ways for the same goal, for instance LoadInst::getPointerOperand() and LoadInst::getOperand(0). One makes the intention clearer than the other.

Same for isInnerMost()/empty().

Since these are identical, I'd tend to remove one. In these case I'd remove empty() since Loop does not represent a container.

Jul 8 2020, 1:42 AM · Restricted Project

Jul 7 2020

baziotis added a comment to D83283: [Attributor] AAPotentialValues Interface.

Nit comments, I haven't yet digested the whole patch.

Jul 7 2020, 3:39 AM · Restricted Project
baziotis added a comment to D80991: [WIP][Attributor] AAPotentialValues Attribute.

First of all, great patch. Reading the description and the referenced diff, I can't find an explanation about what this patch tries to do, it would be good if you added that. My assumption is:

Jul 7 2020, 3:38 AM · Restricted Project

Jul 3 2020

baziotis added a comment to D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().

I partially agree but also IMHO empty() is confusing enough so that introducing isInnermost/Outermost has benefit that outweighs the cost. A Loop can contain both BBs and loops which is different than DominatorTree AFAIK (which can only contain BBs).
This is a big source of confusion when one comes across it in the code (and as I said, personally I assumed it had to do with the BBs).

Jul 3 2020, 3:44 AM · Restricted Project

Jul 2 2020

baziotis updated the diff for D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().

Added isInnermost/Outermost.

Jul 2 2020, 5:17 PM · Restricted Project
baziotis added a comment to D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().

Thanks for the reviews, I'm updating.

Jul 2 2020, 4:46 PM · Restricted Project

Jun 30 2020

baziotis updated the diff for D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().

Address comment.

Jun 30 2020, 12:29 PM · Restricted Project
baziotis added a comment to D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().

I created the review instead of just committing to discuss that it may be a good idea to even rename this e.g. to "isInnermost()".
With "empty()", it's not clear if the implementation is:
return getSubLoops().empty() or return !getNumBlocks() (or something else)

I think using empty makes sense in the context of begin() and end()

Jun 30 2020, 11:58 AM · Restricted Project
baziotis added a comment to D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().

I created the review instead of just committing to discuss that it may be a good idea to even rename this e.g. to "isInnermost()".
With "empty()", it's not clear if the implementation is:
return getSubLoops().empty() or return !getNumBlocks() (or something else)

Jun 30 2020, 11:24 AM · Restricted Project
baziotis created D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().
Jun 30 2020, 11:24 AM · Restricted Project

May 28 2020

baziotis added inline comments to D80552: [PrintSCC] Fix printing a basic-block without a name.
May 28 2020, 1:45 PM · Restricted Project

May 26 2020

baziotis committed rGef94f60ff795: [MSSA][Doc] Fix typo (authored by baziotis).
[MSSA][Doc] Fix typo
May 26 2020, 12:33 PM
baziotis committed rG2c7d63257d8e: [MSSA][Doc] Clobbers, more info on Defs / Def chain (authored by baziotis).
[MSSA][Doc] Clobbers, more info on Defs / Def chain
May 26 2020, 10:53 AM
baziotis closed D80000: [MSSA] Doc: Clobbers, more info on Defs / Def chain.
May 26 2020, 10:53 AM · Restricted Project
baziotis added a comment to D80000: [MSSA] Doc: Clobbers, more info on Defs / Def chain.

thanks for this!

if someone stamps with nits and you're confident that you've addressed the nits, feel free to commit :)

May 26 2020, 10:49 AM · Restricted Project

May 25 2020

baziotis added a comment to D80000: [MSSA] Doc: Clobbers, more info on Defs / Def chain.

Ping :) Should I commit?

May 25 2020, 6:13 PM · Restricted Project

May 15 2020

baziotis updated the diff for D80000: [MSSA] Doc: Clobbers, more info on Defs / Def chain.

Thanks for the comments!

May 15 2020, 4:19 PM · Restricted Project
baziotis added inline comments to D80000: [MSSA] Doc: Clobbers, more info on Defs / Def chain.
May 15 2020, 5:53 AM · Restricted Project
baziotis created D80000: [MSSA] Doc: Clobbers, more info on Defs / Def chain.
May 15 2020, 5:53 AM · Restricted Project

Apr 11 2020

baziotis committed rG72ffeb2d38fb: [LoopTerminology] LCSSA: Fix typo in code sample (authored by baziotis).
[LoopTerminology] LCSSA: Fix typo in code sample
Apr 11 2020, 6:41 PM

Apr 4 2020

baziotis accepted D76873: [Attributor][NFC] Split AbstractAttribute subclasses out of Attributor.cpp.

I think we'll benefit from more structure and this is only one step in that direction. If there is no argument against I'd like to land this now as we have little attributor patches in the pipeline.

Apr 4 2020, 6:06 PM · Restricted Project
baziotis added a comment to rGf3dd3a66d3d5: [Attributor] AAUndefinedBehavior: Use AAValueSimplify in memory accessing….

Differential Review: https://reviews.llvm.org/D71960/

Apr 4 2020, 5:34 PM
baziotis closed D71960: [Attributor] AAUndefinedBehavior: Use AAValueSimplify in memory accessing instructions..

Closed by: https://reviews.llvm.org/rGf3dd3a66d3d5643a5e6f46bb18dee3be3a5898cd

Apr 4 2020, 5:34 PM · Restricted Project
baziotis committed rGf3dd3a66d3d5: [Attributor] AAUndefinedBehavior: Use AAValueSimplify in memory accessing… (authored by baziotis).
[Attributor] AAUndefinedBehavior: Use AAValueSimplify in memory accessing…
Apr 4 2020, 5:02 PM
baziotis updated the diff for D71960: [Attributor] AAUndefinedBehavior: Use AAValueSimplify in memory accessing instructions..
  • Final update
Apr 4 2020, 5:01 PM · Restricted Project
baziotis added a comment to D71960: [Attributor] AAUndefinedBehavior: Use AAValueSimplify in memory accessing instructions..

Committed but of course I forgot again to add the differential revision. I don't why I continuously do that, sorry. :)
I'll add it to the commit in Phabricator and close this when the commit is ready.

Apr 4 2020, 5:01 PM · Restricted Project

Apr 2 2020

baziotis committed rG8348e9d71b0a: [LoopTerminology] Make term names bold (authored by baziotis).
[LoopTerminology] Make term names bold
Apr 2 2020, 5:24 AM
baziotis closed D77151: [LoopTerminology] Make term names bold.
Apr 2 2020, 5:23 AM · Restricted Project
baziotis added a comment to D77151: [LoopTerminology] Make term names bold.

Ty

Apr 2 2020, 5:23 AM · Restricted Project

Mar 31 2020

baziotis created D77151: [LoopTerminology] Make term names bold.
Mar 31 2020, 9:57 AM · Restricted Project
baziotis committed rG229cda968cb2: [LoopTerminology] LCSSA form (authored by baziotis).
[LoopTerminology] LCSSA form
Mar 31 2020, 6:05 AM
baziotis closed D75233: [LoopTerminology] LCSSA Form.
Mar 31 2020, 6:04 AM · Restricted Project
baziotis added a comment to D75233: [LoopTerminology] LCSSA Form.

LGTM. Thanks for the effort!

No, problem, thanks for the review and the info!

Mar 31 2020, 5:32 AM · Restricted Project

Mar 30 2020

baziotis added a comment to D75405: [LSR] OptimizeShadowIV: Constant can be negative.

Ping.

Mar 30 2020, 4:57 PM · Restricted Project
baziotis updated the diff for D75233: [LoopTerminology] LCSSA Form.
  • Addressed SCEV behavior in loop-variant expressions.
Mar 30 2020, 6:27 AM · Restricted Project
baziotis added inline comments to D75233: [LoopTerminology] LCSSA Form.
Mar 30 2020, 5:55 AM · Restricted Project

Mar 29 2020

baziotis added a comment to D75233: [LoopTerminology] LCSSA Form.

Yes. Could you explain the part about dominator nodes ? I understand how dominators help in the identification
of loops and how dominance frontiers help in the placement of normal PHI nodes (i.e. when 2 or more paths converge). But I don't see how dominators
help with the placement of LCSSA phi nodes.

It is simple if the loop has just a single exit, but much more involved with multiple exits. Example CFG:

Header:
  %val = ...

Header->{Latch1,Latch2,Latch3}->Header

Header->Latch1->Exit1
Header->Latch2->Exit2
Header->Latch3->Exit3

Exit->Successor1

Successor1->SharedSucc
Exit2->SharedSucc

SharedSucc->CommonSucc
Exit3->CommonSucc

CommonSucc:
  use(%val)

Header dominates all other BBs in this example, hence without LCSSA, this is well-formed. However, with LCSSA we have to insert phis into Exit1,Exit2,Exit3 such that the end result has to look like:

Exit1:
  %lcssa1 = phi [%val, %Latch1]

Exit2:
  %lcssa2 = phi [%val, %Latch2]

Exit3:
  %lcssa3 = phi [%val, %Latch3]

SharedSucc:
  %sharedval = phi [%lcssa1 , %Exit1], [%lcssa2, %Exit2]

CommonSucc:
  %commonval = phi [%lcssa3 , %Exit3], [%sharedval , %SharedSucc]
  use(%commonval)

For computing %sharedval and %commonval, DominanceFrontier is needed again, hence LCSSA is not less complicated that SSA itself.

Mar 29 2020, 6:12 PM · Restricted Project
baziotis updated the diff for D75233: [LoopTerminology] LCSSA Form.
  • Various typos.
  • Added def-use chain info as a footnote since its used twice. Also a footnote about LCSSA construction (I consider it interesting but in a footnote because it may be irrelevant in the main text).
  • Added some info about SCEV.
Mar 29 2020, 6:12 PM · Restricted Project
baziotis added a comment to D76873: [Attributor][NFC] Split AbstractAttribute subclasses out of Attributor.cpp.

Personally I don't have problem with big files, sometimes they're more easy to use. But I definitely agree that we should start thinking about structure and splitting into files can help.

Mar 29 2020, 1:56 PM · Restricted Project

Mar 26 2020

baziotis added a comment to D75233: [LoopTerminology] LCSSA Form.

2 questions:

  1. Is it "loop closed PHI node" or "loop closing PHI node"?

Not being an expert of the English language, I;d say "loop-closing PHI node"

  1. Does LCSSA pass have to do this deep analysis? Because to me, it seems it can just use RAUW?

The most complicated thing is finding the dominator nodes to add the PHI nodes in (especially with multiple loop exits).

If possible, could you avoid "deep analysis", but instead refer the kind of analysis needed?

Mar 26 2020, 9:45 AM · Restricted Project