Page MenuHomePhabricator
Feed Advanced Search

Oct 8 2019

kuhar accepted D68460: [MachineSink] Don't preserve MachineLoopInfo.
Oct 8 2019, 7:38 AM · Restricted Project

Oct 4 2019

kuhar added a comment to D68460: [MachineSink] Don't preserve MachineLoopInfo.

Would it be possible to add a verifyAnalysis function to MLI and check if a freshly calculated one matches the 'preserved' one?

Oct 4 2019, 2:04 PM · Restricted Project

Oct 2 2019

kuhar added inline comments to D68235: [Dominators][CodeGen] Add MachinePostDominatorTree verification.
Oct 2 2019, 7:10 AM · Restricted Project
kuhar added inline comments to D68235: [Dominators][CodeGen] Add MachinePostDominatorTree verification.
Oct 2 2019, 6:28 AM · Restricted Project

Oct 1 2019

kuhar accepted D68298: [GlobalOpt] Pass DTU to removeUnreachableBlocks instead of recomputing..

Looks good to me.

Oct 1 2019, 2:19 PM · Restricted Project
kuhar committed rG7ed4fb389bab: Add a missing pass in ARM O3 pipeline (authored by kuhar).
Add a missing pass in ARM O3 pipeline
Oct 1 2019, 11:54 AM
kuhar committed rL373382: Add a missing pass in ARM O3 pipeline.
Add a missing pass in ARM O3 pipeline
Oct 1 2019, 11:52 AM
kuhar committed rG856c1cd8520c: [Dominators][CodeGen] Don't mark MachineDominatorTree as preserved in… (authored by kuhar).
[Dominators][CodeGen] Don't mark MachineDominatorTree as preserved in…
Oct 1 2019, 11:28 AM
kuhar committed rG5be08ee9025d: [Dominators][CodeGen] Fix MachineDominatorTree preservation in PHIElimination (authored by kuhar).
[Dominators][CodeGen] Fix MachineDominatorTree preservation in PHIElimination
Oct 1 2019, 11:28 AM
kuhar committed rG925c285f4381: Reapply [Dominators][CodeGen] Clean up MachineDominators (authored by kuhar).
Reapply [Dominators][CodeGen] Clean up MachineDominators
Oct 1 2019, 11:28 AM
kuhar committed rL373377: [Dominators][CodeGen] Fix MachineDominatorTree preservation in PHIElimination.
[Dominators][CodeGen] Fix MachineDominatorTree preservation in PHIElimination
Oct 1 2019, 11:27 AM
kuhar committed rL373378: [Dominators][CodeGen] Don't mark MachineDominatorTree as preserved in….
[Dominators][CodeGen] Don't mark MachineDominatorTree as preserved in…
Oct 1 2019, 11:27 AM
kuhar closed D68154: [Dominators][CodeGen] Fix MachineDominatorTree preservation in PHIElimination.
Oct 1 2019, 11:27 AM · Restricted Project
kuhar committed rL373376: Reapply [Dominators][CodeGen] Clean up MachineDominators.
Reapply [Dominators][CodeGen] Clean up MachineDominators
Oct 1 2019, 11:27 AM
kuhar added a comment to D68154: [Dominators][CodeGen] Fix MachineDominatorTree preservation in PHIElimination.

@arsenm @hiraditya
Are you fine with committing the patch as-is and exploring using the incremental updater later?

Oct 1 2019, 8:25 AM · Restricted Project
kuhar committed rG56b52a207fef: [Dominators][CodeGen] Add MachinePostDominatorTree verification (authored by kuhar).
[Dominators][CodeGen] Add MachinePostDominatorTree verification
Oct 1 2019, 8:23 AM
kuhar committed rL373341: [Dominators][CodeGen] Add MachinePostDominatorTree verification.
[Dominators][CodeGen] Add MachinePostDominatorTree verification
Oct 1 2019, 8:23 AM
kuhar closed D68235: [Dominators][CodeGen] Add MachinePostDominatorTree verification.
Oct 1 2019, 8:22 AM · Restricted Project
kuhar updated the diff for D68235: [Dominators][CodeGen] Add MachinePostDominatorTree verification.
Oct 1 2019, 8:04 AM · Restricted Project

Sep 30 2019

kuhar added inline comments to D68235: [Dominators][CodeGen] Add MachinePostDominatorTree verification.
Sep 30 2019, 12:10 PM · Restricted Project
kuhar updated the diff for D68235: [Dominators][CodeGen] Add MachinePostDominatorTree verification.

Fix a typo

Sep 30 2019, 11:34 AM · Restricted Project
kuhar created D68235: [Dominators][CodeGen] Add MachinePostDominatorTree verification.
Sep 30 2019, 11:29 AM · Restricted Project
kuhar resigned from D58187: Teach DTU to recalculate DT/PDT automatically when EntryBB is changed.
Sep 30 2019, 9:50 AM · Restricted Project
kuhar resigned from D50300: [WIP!][Dominators] Collect DomTree construction/update statistics and timing data.
Sep 30 2019, 9:50 AM
kuhar resigned from D54730: [DomTree] Fix order of domtree updates in MergeBlockIntoPredecessor..
Sep 30 2019, 9:50 AM · Restricted Project
kuhar resigned from D35142: WIP! [CFG] Create a new removeUnreachable utility that updates the dom in place.
Sep 30 2019, 9:50 AM
kuhar resigned from D45151: [LICM] Hoisting invariant.group loads.
Sep 30 2019, 9:50 AM · Restricted Project
kuhar resigned from D45150: Less conservative LoopSafetyInfo for headers.
Sep 30 2019, 9:50 AM · Restricted Project
kuhar resigned from D38586: SLPVectorizer.cpp: Ensure SLPVectorizer can visit each block by dominated order.
Sep 30 2019, 9:47 AM · Restricted Project
kuhar resigned from D36135: [RFC] Make infinite loops available in postdom tree, but do not connect them to the reverse reachable part of the CFG.
Sep 30 2019, 9:47 AM
kuhar updated the diff for D68154: [Dominators][CodeGen] Fix MachineDominatorTree preservation in PHIElimination.

I'd like to commit this simple fix as-is, make sure no buildbots complain, and then introduce a proper incremental updating in a later revision.

Sep 30 2019, 7:56 AM · Restricted Project
kuhar added a comment to D68154: [Dominators][CodeGen] Fix MachineDominatorTree preservation in PHIElimination.

Is there some reason it’s difficult to update the tree where needed here? I would try to just handle that instead of figuring out how to unpreserve it

Will try that, we have a generic updater that we should be able to use.

Sep 30 2019, 7:22 AM · Restricted Project

Sep 29 2019

kuhar added a comment to D68154: [Dominators][CodeGen] Fix MachineDominatorTree preservation in PHIElimination.

Is there some reason it’s difficult to update the tree where needed here? I would try to just handle that instead of figuring out how to unpreserve it

Will try that, we have a generic updater that we should be able to use.

Sep 29 2019, 1:13 PM · Restricted Project
kuhar planned changes to D68154: [Dominators][CodeGen] Fix MachineDominatorTree preservation in PHIElimination.

Thanks for the comments, @arsenm and @hiraditya.

Sep 29 2019, 12:35 PM · Restricted Project

Sep 27 2019

kuhar committed rG159ef37735f2: Revert [Dominators][CodeGen] Clean up MachineDominators (authored by kuhar).
Revert [Dominators][CodeGen] Clean up MachineDominators
Sep 27 2019, 12:37 PM
kuhar committed rG9bccdfcd4c4f: Revert XFAIL a codegen test AArch64/tailmerging_in_mbp.ll (authored by kuhar).
Revert XFAIL a codegen test AArch64/tailmerging_in_mbp.ll
Sep 27 2019, 12:37 PM
kuhar committed rL373117: Revert [Dominators][CodeGen] Clean up MachineDominators.
Revert [Dominators][CodeGen] Clean up MachineDominators
Sep 27 2019, 12:37 PM
kuhar committed rL373116: Revert XFAIL a codegen test AArch64/tailmerging_in_mbp.ll.
Revert XFAIL a codegen test AArch64/tailmerging_in_mbp.ll
Sep 27 2019, 12:36 PM
kuhar created D68154: [Dominators][CodeGen] Fix MachineDominatorTree preservation in PHIElimination.
Sep 27 2019, 12:09 PM · Restricted Project
kuhar added a comment to D67976: [Dominators][CodeGen] Clean up MachineDominators.

The changes to verifier caught a MDT bug on AArch64:

test/CodeGen/AArch64/tailmerging_in_mbp.ll -mtriple=aarch64-eabi -verify-machine-dom-info 
DominatorTree is different than a freshly computed one!
	Current:
=============================--------------------------------
Inorder Dominator Tree: DFSNumbers invalid: 25 slow queries.
  [1] %bb.0 {4294967295,4294967295} [0]
    [2] %bb.1 {4294967295,4294967295} [1]
      [3] %bb.2 {4294967295,4294967295} [2]
        [4] %bb.3 {4294967295,4294967295} [3]
          [5] %bb.7 {4294967295,4294967295} [4]
          [5] %bb.4 {4294967295,4294967295} [4]
            [6] %bb.5 {4294967295,4294967295} [5]
              [7] %bb.6 {4294967295,4294967295} [6]
    [2] %bb.8 {4294967295,4294967295} [1]
Roots: %bb.0
Sep 27 2019, 10:53 AM · Restricted Project
kuhar committed rGa524e630a793: XFAIL a codegen test AArch64/tailmerging_in_mbp.ll (authored by kuhar).
XFAIL a codegen test AArch64/tailmerging_in_mbp.ll
Sep 27 2019, 10:41 AM
kuhar committed rL373103: XFAIL a codegen test AArch64/tailmerging_in_mbp.ll.
XFAIL a codegen test AArch64/tailmerging_in_mbp.ll
Sep 27 2019, 10:39 AM
kuhar committed rG72c57ec3e6b3: [Dominators][CodeGen] Clean up MachineDominators (authored by kuhar).
[Dominators][CodeGen] Clean up MachineDominators
Sep 27 2019, 10:27 AM
kuhar committed rL373101: [Dominators][CodeGen] Clean up MachineDominators.
[Dominators][CodeGen] Clean up MachineDominators
Sep 27 2019, 10:23 AM
kuhar closed D67976: [Dominators][CodeGen] Clean up MachineDominators.
Sep 27 2019, 10:23 AM · Restricted Project
kuhar added a reviewer for D67976: [Dominators][CodeGen] Clean up MachineDominators: hliao.
Sep 27 2019, 9:04 AM · Restricted Project

Sep 26 2019

kuhar committed rGd98cb81cd11c: Handle successor's PHI node correctly when flattening CFG merges two if-regions (authored by kuhar).
Handle successor's PHI node correctly when flattening CFG merges two if-regions
Sep 26 2019, 8:23 AM
kuhar committed rL372989: Handle successor's PHI node correctly when flattening CFG merges two if-regions.
Handle successor's PHI node correctly when flattening CFG merges two if-regions
Sep 26 2019, 8:18 AM
kuhar closed D68032: Handle successor's PHI node correctly when flattening CFG merges two if-regions.
Sep 26 2019, 8:18 AM · Restricted Project

Sep 25 2019

kuhar accepted D68032: Handle successor's PHI node correctly when flattening CFG merges two if-regions.

Seems fine to me. Thanks for the fixes.
Please wait some time and see if others are OK with this change too.

Sep 25 2019, 2:17 PM · Restricted Project
kuhar added inline comments to D68032: Handle successor's PHI node correctly when flattening CFG merges two if-regions.
Sep 25 2019, 10:51 AM · Restricted Project
kuhar committed rG269bd15c68ca: [Dominators][AMDGPU] Don't use virtual exit node in findNearestCommonDominator. (authored by kuhar).
[Dominators][AMDGPU] Don't use virtual exit node in findNearestCommonDominator.
Sep 25 2019, 7:04 AM
kuhar committed rL372874: [Dominators][AMDGPU] Don't use virtual exit node in findNearestCommonDominator..
[Dominators][AMDGPU] Don't use virtual exit node in findNearestCommonDominator.
Sep 25 2019, 7:04 AM
kuhar closed D67974: [Dominators][AMDGPU] Don't use virtual exit node in findNearestCommonDominator. Cleanup MachinePostDominators..
Sep 25 2019, 7:04 AM · Restricted Project, Restricted Project
kuhar updated the diff for D67974: [Dominators][AMDGPU] Don't use virtual exit node in findNearestCommonDominator. Cleanup MachinePostDominators..

Fix a typo.

Sep 25 2019, 6:50 AM · Restricted Project, Restricted Project

Sep 24 2019

kuhar updated the diff for D67974: [Dominators][AMDGPU] Don't use virtual exit node in findNearestCommonDominator. Cleanup MachinePostDominators..
Sep 24 2019, 2:08 PM · Restricted Project, Restricted Project
kuhar updated the diff for D67974: [Dominators][AMDGPU] Don't use virtual exit node in findNearestCommonDominator. Cleanup MachinePostDominators..
Sep 24 2019, 1:33 PM · Restricted Project, Restricted Project
kuhar added inline comments to D67974: [Dominators][AMDGPU] Don't use virtual exit node in findNearestCommonDominator. Cleanup MachinePostDominators..
Sep 24 2019, 12:35 PM · Restricted Project, Restricted Project
kuhar updated the diff for D67974: [Dominators][AMDGPU] Don't use virtual exit node in findNearestCommonDominator. Cleanup MachinePostDominators..

Small cleanup.

Sep 24 2019, 12:34 PM · Restricted Project, Restricted Project
kuhar created D67976: [Dominators][CodeGen] Clean up MachineDominators.
Sep 24 2019, 12:01 PM · Restricted Project
kuhar abandoned D51200: Introduce per-callsite inline intrinsics.
Sep 24 2019, 12:01 PM · Restricted Project
kuhar created D67974: [Dominators][AMDGPU] Don't use virtual exit node in findNearestCommonDominator. Cleanup MachinePostDominators..
Sep 24 2019, 11:04 AM · Restricted Project, Restricted Project

Sep 19 2019

kuhar committed rGe6b2164723b0: Don't use invalidated iterators in FlattenCFGPass (authored by kuhar).
Don't use invalidated iterators in FlattenCFGPass
Sep 19 2019, 12:40 PM
kuhar committed rL372347: Don't use invalidated iterators in FlattenCFGPass.
Don't use invalidated iterators in FlattenCFGPass
Sep 19 2019, 12:38 PM
kuhar closed D67672: Don't use invalidated iterators in FlattenCFGPass.
Sep 19 2019, 12:38 PM · Restricted Project
kuhar edited reviewers for D67672: Don't use invalidated iterators in FlattenCFGPass, added: sanjoy, asbirlea; removed: grosser.
Sep 19 2019, 7:16 AM · Restricted Project

Sep 17 2019

kuhar created D67672: Don't use invalidated iterators in FlattenCFGPass.
Sep 17 2019, 11:34 AM · Restricted Project

Sep 4 2019

kuhar committed rL370992: Add kuhar to gihub usernames.
Add kuhar to gihub usernames
Sep 4 2019, 3:36 PM

Aug 28 2019

kuhar accepted D66911: [LoopUnroll] Use Lazy strategy for DTU used for MergeBlockIntoPredecessor..

Looks good. Thanks!

Aug 28 2019, 5:43 PM · Restricted Project

Jul 2 2019

kuhar added a comment to D62619: [analyzer][IDF] Add a control dependency calculator + a new debug checker.

The non-static-analyzer bits look good to me, I added a few nits.

Jul 2 2019, 7:46 AM · Restricted Project, Restricted Project

Jun 26 2019

kuhar accepted D63389: [IDF] Generalize IDFCalculator to be used with Clang's CFG.

Looks good now. I added a few nits inline.

Jun 26 2019, 11:13 AM · Restricted Project

Jun 19 2019

kuhar added a comment to D63389: [IDF] Generalize IDFCalculator to be used with Clang's CFG.

@Szelethus

That wasn't going to happen, since the GraphDiff object has to be used in the getChildren function. I made llvm::IDFCalculator::getChildren virtual, is this okay?

I also have a local branch on which I used std::function (had to be used in order to pass a lambda with a non-empty capture list) and kept everything non-virtual, but I read somewhere that std::function is heavy-weight. Which solution is better, if any?

I'd expect the getChildren to be potentially performance-sensitive and am worried about switching it into a virtual call or another indirection through std::function. Do you have some evidence that this does not affect performance?

Jun 19 2019, 8:26 AM · Restricted Project

Jun 17 2019

kuhar added a comment to D63389: [IDF] Generalize IDFCalculator to be used with Clang's CFG.

Thanks!

Looks great, I'm only not sure about the GraphDiff removal.

Practically revert D50675. This was done because GraphDiff is only specialized for BasicBlock, and wouldn't be used for clang::CFGBlcok. Interestingly, it wasn't even used at all: In D45299, it was used at a certain point (https://reviews.llvm.org/D45299?id=160698) but was ultimately removed. Is this okay?

@asbirlea?

If having a virtual function isn't too painful, it'd be easy to reimplement it.

Jun 17 2019, 8:25 AM · Restricted Project
kuhar added a comment to D63389: [IDF] Generalize IDFCalculator to be used with Clang's CFG.

Looks great, I'm only not sure about the GraphDiff removal.

Jun 17 2019, 8:17 AM · Restricted Project
kuhar added inline comments to D62619: [analyzer][IDF] Add a control dependency calculator + a new debug checker.
Jun 17 2019, 8:10 AM · Restricted Project, Restricted Project

May 29 2019

kuhar added a comment to D62619: [analyzer][IDF] Add a control dependency calculator + a new debug checker.

You can easily get CD by calculating the PostDominanceFrontier. LLVM implements a templated IDF (Iterated Dominance Frontier) construction.
A native implementation for llvm ir for reference, if you need:

May 29 2019, 12:27 PM · Restricted Project, Restricted Project
kuhar added inline comments to D62611: [analyzer][Dominators] Add unittests.
May 29 2019, 10:56 AM · Restricted Project, Restricted Project
kuhar added inline comments to D62611: [analyzer][Dominators] Add unittests.
May 29 2019, 10:56 AM · Restricted Project, Restricted Project

May 28 2019

kuhar added inline comments to D62551: [analyzer][Dominator] Add post dominator tree builder for the CFG + a debug checker.
May 28 2019, 3:02 PM · Restricted Project, Restricted Project
kuhar added inline comments to D62551: [analyzer][Dominator] Add post dominator tree builder for the CFG + a debug checker.
May 28 2019, 2:59 PM · Restricted Project, Restricted Project
kuhar added inline comments to D62551: [analyzer][Dominator] Add post dominator tree builder for the CFG + a debug checker.
May 28 2019, 2:17 PM · Restricted Project, Restricted Project
kuhar accepted D62507: [Dominators] PR42041: Skip nullpointer successors.

Thanks, I think this is a much better solution than directly hacking on DomTreeBuilder.

May 28 2019, 8:39 AM · Restricted Project, Restricted Project
kuhar added inline comments to D62507: [Dominators] PR42041: Skip nullpointer successors.
May 28 2019, 8:27 AM · Restricted Project, Restricted Project
kuhar requested changes to D62507: [Dominators] PR42041: Skip nullpointer successors.

Like I mentioned in another thread, I really dislike this approach. The single source of truth about graph traversal in dominators is the ChildGetter structure that internally uses children and inverse_children, and expects them to only return pointers to actual successors/predecessors. It's very weird that children and inverse_children return nullptrs -- they are not valid graph nodes, and I don't see why this would be desired, despite how unreachable regions are represented in the CFG.

May 28 2019, 8:09 AM · Restricted Project, Restricted Project

Apr 29 2019

kuhar accepted D61055: [LoopSimplifyCFG] Suppress expensive DomTree verification in LoopSimplifyCFG.
Apr 29 2019, 4:24 AM · Restricted Project
kuhar added a comment to D61055: [LoopSimplifyCFG] Suppress expensive DomTree verification in LoopSimplifyCFG.

I claim that it's better to make it obvious that these checks are slow, and make developers either guard them with EXPENSIVE_CHECKS or opt-in with Fast.

Do you mean removing the default entirely? To makes it explicit.

Whatever we do in the long run needn't be done here, and making this Fast and behind expensive checks is a definite improvement. (I think Full is still more expensive than necessary, even for an expensive checks build).

Apr 29 2019, 4:22 AM · Restricted Project

Apr 28 2019

kuhar added a comment to D61055: [LoopSimplifyCFG] Suppress expensive DomTree verification in LoopSimplifyCFG.

Yes, I think expensive checks are sufficient. If you think there's a strong need to assert in debug builds, maybe try the Fast level for now and remove it after a few weeks, once you gain confidence in the code or someone complains the check is too slow?

Apr 28 2019, 9:18 PM · Restricted Project
kuhar added a comment to D61055: [LoopSimplifyCFG] Suppress expensive DomTree verification in LoopSimplifyCFG.

But I was not aware that Fast used to be the default, and was still quite slow. I was under the impression that the problems in the past were to do with it using Full under expensive checks, and that Fast was fairly quick (quick enough for an asserts build).

It of course depends on exactly location, but we found that Fast is generally not quick enough to be run during a typical loop pass (on large files, or loopy code from non-clang frontends). I claim that it's better to make it obvious that these checks are slow, and make developers either guard them with EXEPNSIVE_CHECKS or opt-in with Fast.

Apr 28 2019, 1:40 PM · Restricted Project
kuhar added a comment to D61055: [LoopSimplifyCFG] Suppress expensive DomTree verification in LoopSimplifyCFG.

Hello. I think it's fine to always use DominatorTree::VerificationLevel::Fast, the others are more about checking that the DomTree construction code was correct. Fast will compare against a new tree, so for updates will check the the tree is correct.

may be we have to set Fast by default instead of Full?

bool DominatorTreeBase<>::verify(VerificationLevel VL = VerificationLevel::Full) const {
Apr 28 2019, 11:44 AM · Restricted Project

Apr 17 2019

kuhar added a comment to D60755: [NFCI] Improve efficiency of isPotentiallyReachableFromManyDomTree..

IMO you could introduce df_iterator_tree_storage by a slight modification to the default one:

// df_iterator_storage - A private class which is used to figure out where to
// store the visited set.
template<class SetType, bool External>   // Non-external set
class df_iterator_storage {
public:
  SetType Visited;
};
Apr 17 2019, 8:55 AM · Restricted Project
kuhar added a comment to D60754: Add forEachDescendant to DominatorTree..

OK, I can see that this is exactly what you want to avoid in the related revision. In this case, isn't it possible to provide a dummy storage to DepthFirstIterator and use it to efficiently traverse trees?

Apr 17 2019, 8:54 AM · Restricted Project
kuhar added a comment to D60754: Add forEachDescendant to DominatorTree..

Would it make sense to use one of the llvm graph iterators and have descendants_begin() and descendants_end() functions instead?

Apr 17 2019, 8:47 AM · Restricted Project

Feb 27 2019

kuhar accepted D58373: [Dominators] Avoid potentially quadratic std::is_permutation.
Feb 27 2019, 8:28 PM · Restricted Project
kuhar added a comment to D58373: [Dominators] Avoid potentially quadratic std::is_permutation.

If you think you there's enough evidence that is_permutation can cause a problems here, go ahead with the current patch.

Feb 27 2019, 7:39 PM · Restricted Project
kuhar added a comment to D58373: [Dominators] Avoid potentially quadratic std::is_permutation.

Roots.size() is only > 1 for the PostDominatorTree, and I'd expect it to be small (< 100) on virtually all functions. is_permulation was used in the original code because it doesn't allocate and should be cheaper for small trees.

Do you have some statistics on the size of Roots? At what size does SmallPtrSet start to outperform is_permuatation?

Thanks for the empirical data (<100). I find SmallPtrSet<void *, 4> starts to outperform std::is_permutation when there are about 16 elements on my machine. It may be 2x slower (should be larger, but I put it in a loop and the loop itself has some costs) when there is only one root. So the benefit to use a SmallPtrSet here is just to filter out some unlikely cases (>1000 roots) and to clear up my doubts when I see that verifyRoots claims to be O(N)...

It seems it would be best to create a small helper function that does permutation check using std::is_permuatation for small arrays and uses SmallPtrSet for the rest.

Feb 27 2019, 7:33 AM · Restricted Project

Feb 20 2019

kuhar added a comment to D58170: [DTU] Refine the interface and logic of applyUpdates.

I think the default for applyUpdates should be the strict mode; any code that relies on imprecise information about updates should make it clear by using some longer name, like applyUpdatesRelaxed.

I'm fine with making applyUpdates default to strict mode to make it consistent to other parts of the codebase and encourage people to use the strict one which does not have extra overhead on scanning the CFG.

But if the user follows the rules on using applyUpdatesRelaxed/Checked, DTU is also guaranteed to have precise information on updates.

Feb 20 2019, 11:03 AM · Restricted Project
kuhar added a comment to D58170: [DTU] Refine the interface and logic of applyUpdates.

I think the default should be the strict mode; any code that relies on imprecise information about updates should make it clear by using some longer name, like applyUpdatesRelaxed.

Feb 20 2019, 10:25 AM · Restricted Project
kuhar added a comment to D58327: [Dominators] Simplify and optimize path compression used in link-eval forest..

And how can I benchmark dynamic dominator tree? CalculateFromScratch is easy to benchmark as I can just repeatedly run the function analysis domtree and discard the result but I don't know how for the dynamic case...

The best method I came up with is to instrument the updater primitives (applyUpdates, insertEdge, deleteEdge, recalculate, etc.), and measure time within the running optimizer. It should be best to get some big bitcode file and run opt with O3 on it. clang is reasonably sized in this configuration, you should also have luck with webassembly and rippled. If you are with google, you can try some bigger internal targets (there is a script to compile a given target to bitcode).

Feb 20 2019, 10:04 AM · Restricted Project
kuhar accepted D58443: [DTU] Deprecate insertEdge*/deleteEdge*.

Great, thanks for putting effort into this and the related patches

Feb 20 2019, 5:52 AM · Restricted Project

Feb 19 2019

kuhar removed a reviewer for D58425: Fix the build with gcc 8.x when `-Wredundant-decls` is passed: kuhar.
Feb 19 2019, 8:32 PM · Restricted Project, Restricted Project