etherzhhb (Hongbin Zheng)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 30 2014, 7:37 PM (159 w, 6 d)

Recent Activity

Wed, Aug 16

etherzhhb added a comment to D36800: Add rewrite by-reference parameter pass.

It's certainly not too late. Until now it seemed to me like a very specific optimization for gfortran. I did not see any such examples before. If we can generalize this, we can certainly try to upstream this. Could you share some of the examples you are seeing?

Wed, Aug 16, 11:00 PM · Restricted Project
etherzhhb added a comment to D36800: Add rewrite by-reference parameter pass.

Sorry this may be too late. Alexandre and me had discussed similar problem (but not exactly the same)

  1. maybe we could improve the ArgumentPromotion pass for this
  2. this pass seems to be generic, maybe we could move this to LLVM?
Wed, Aug 16, 10:30 PM · Restricted Project

Wed, Aug 9

etherzhhb added inline comments to D36425: [ZoneAlgo] Allow two writes that write identical values into same array slot.
Wed, Aug 9, 12:15 AM · Restricted Project

Mon, Aug 7

etherzhhb added inline comments to D36425: [ZoneAlgo] Allow two writes that write identical values into same array slot.
Mon, Aug 7, 3:55 PM · Restricted Project
etherzhhb added inline comments to D36425: [ZoneAlgo] Allow two writes that write identical values into same array slot.
Mon, Aug 7, 3:39 PM · Restricted Project
etherzhhb added inline comments to D36425: [ZoneAlgo] Allow two writes that write identical values into same array slot.
Mon, Aug 7, 3:38 PM · Restricted Project

Tue, Aug 1

etherzhhb created D36210: [LLVM] [RegionInfo] Introduce getExitingBlocks to get all predecessors of Exit in the current region..
Tue, Aug 1, 10:55 PM

Tue, Jul 25

etherzhhb added a comment to D35858: [RFC] [LLVM] [LazyValueInfo] Introduce getRecurringEdgeValue to handle simple recurrence.

Could you please quantify the effect that this has on compile time? Time for an optimized -j1 compile of LLVM itself is reasonable. Also it would be nice to know what effect this has on generated code.

Tue, Jul 25, 4:12 PM
etherzhhb created D35858: [RFC] [LLVM] [LazyValueInfo] Introduce getRecurringEdgeValue to handle simple recurrence.
Tue, Jul 25, 2:52 PM

Jul 17 2017

etherzhhb added a comment to D35471: [Polly] [RFC] Calculate AST expression type.

Just out of curiosity, are we supposed to change the isl inside polly? what is the relationship between this isl and the "upstream" isl?

Jul 17 2017, 4:24 PM

Jun 26 2017

etherzhhb resigned from D34598: ScalarEvolution: Add URem support.
Jun 26 2017, 3:15 PM

May 11 2017

etherzhhb updated the diff for D33089: [Polly] Generate more 'canonical' induction variable if we can prove there is no overflow..

Fix typo

May 11 2017, 9:46 AM
etherzhhb updated the diff for D33089: [Polly] Generate more 'canonical' induction variable if we can prove there is no overflow..

Address Tobias's comment

May 11 2017, 9:44 AM

May 10 2017

etherzhhb created D33089: [Polly] Generate more 'canonical' induction variable if we can prove there is no overflow..
May 10 2017, 8:53 PM

Apr 28 2017

etherzhhb added inline comments to D32639: [Polly] [Fortran Support] Add pattern matching to find Fortran array descriptor.
Apr 28 2017, 9:40 AM

Apr 26 2017

etherzhhb updated the diff for D32581: [Polly] Do not introduce address space cast.

Fix the test case.

Apr 26 2017, 11:39 PM · Restricted Project
etherzhhb removed a reviewer for D32581: [Polly] Do not introduce address space cast: pollydev.
Apr 26 2017, 11:37 PM · Restricted Project
etherzhhb updated the diff for D32581: [Polly] Do not introduce address space cast.

Add testcase

Apr 26 2017, 11:34 PM · Restricted Project
etherzhhb added a reviewer for D32581: [Polly] Do not introduce address space cast: alexandre.isoard.
Apr 26 2017, 11:15 PM · Restricted Project
etherzhhb added a reviewer for D32581: [Polly] Do not introduce address space cast: Meinersbur.
Apr 26 2017, 11:13 PM · Restricted Project
etherzhhb added a comment to D32581: [Polly] Do not introduce address space cast.

I want to also include a test case, if you can point me to the test case related to IslNodeBuilder::preloadUnconditionally, I can add one.
Let me search polly test dir at the same time

Apr 26 2017, 11:11 PM · Restricted Project
etherzhhb created D32581: [Polly] Do not introduce address space cast.
Apr 26 2017, 11:10 PM · Restricted Project
etherzhhb added inline comments to D32431: [Polly] Added OpenCL Runtime to GPURuntime Library for GPGPU CodeGen.
Apr 26 2017, 12:12 AM · Restricted Project

Apr 25 2017

etherzhhb added inline comments to D32431: [Polly] Added OpenCL Runtime to GPURuntime Library for GPGPU CodeGen.
Apr 25 2017, 5:12 PM · Restricted Project

Mar 30 2017

etherzhhb updated the diff for D31488: [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative.

fix the last few things before pushing the commit

Mar 30 2017, 3:05 PM
etherzhhb added a comment to D31488: [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative.

Comments inline.

You can also do this same rewrite within SCEV. That is, try to have getSCEV(sdiv instruction) return a SCEVUDivExpr if legal.

This also sounds reasonable and I can also look at that after this.
Just a quick question: are we suppose to use getSCEVAtScope in getSCEV?

Mar 30 2017, 2:56 PM
etherzhhb updated the diff for D31488: [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative.

address sanjoy 's comment

Mar 30 2017, 2:51 PM
etherzhhb added inline comments to D31488: [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative.
Mar 30 2017, 12:56 AM
etherzhhb updated the diff for D31488: [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative.

Add more testcases

Mar 30 2017, 12:51 AM

Mar 29 2017

etherzhhb updated the summary of D31488: [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative.
Mar 29 2017, 11:35 PM
etherzhhb added a comment to D31488: [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative.

Hi Tobias

Mar 29 2017, 11:33 PM
etherzhhb updated subscribers of D31488: [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative.
Mar 29 2017, 8:48 PM
etherzhhb added inline comments to D31488: [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative.
Mar 29 2017, 8:39 PM
etherzhhb created D31488: [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative.
Mar 29 2017, 8:38 PM

Jan 30 2017

etherzhhb added a comment to D28050: [Clang][Driver] Clean up Clang::ConstructJob a little bit, NFC.

I think this patch is an improvement, but Clang::ConstructJob is still one giant function.

Do you have ideas to improve readability of this function or plans to further reduce its size?

Jan 30 2017, 11:46 AM

Jan 19 2017

etherzhhb added a comment to D28020: [Polly] Align newly created arrays to the first level cache line boundary.

Interesting, maybe we need to get this from TargetTransformInfo eventually, because I saw a similar global variable/option in LoadStoreVectorizer as well.

Jan 19 2017, 3:21 PM

Jan 14 2017

etherzhhb retitled D28739: Fix compilation on MSVC, NFC from to Fix compilation on MSVC, NFC .
Jan 14 2017, 9:59 PM

Jan 11 2017

etherzhhb retitled D28595: [RFC] Introduce directive.scope.entry and directive.scope.exit for IR-level Region Annotation from to [RFC] Introduce directive.scope.entry and directive.scope.exit for IR-level Region Annotation.
Jan 11 2017, 10:01 PM

Jan 10 2017

etherzhhb added a comment to D28518: [Polly] Canonicalize arrays according to base-ptr equivalence class.

testcase?

Jan 10 2017, 10:22 AM · Restricted Project

Dec 22 2016

etherzhhb updated subscribers of D28050: [Clang][Driver] Clean up Clang::ConstructJob a little bit, NFC.
Dec 22 2016, 2:09 AM
etherzhhb retitled D28050: [Clang][Driver] Clean up Clang::ConstructJob a little bit, NFC from to [Clang][Driver] Clean up Clang::ConstructJob a little bit, NFC.
Dec 22 2016, 2:07 AM

Oct 29 2016

etherzhhb closed D25861: Remove the unused POLLY_LINK_LIBS for linking polly into tools.

This is pushed, phabricator didn't update this patch's status

Oct 29 2016, 11:55 PM

Oct 21 2016

etherzhhb added a comment to D25861: Remove the unused POLLY_LINK_LIBS for linking polly into tools.

Are you going to review the removal of POLLY_LINK_LIBS in polly and clang separately?

Oct 21 2016, 8:19 AM

Oct 20 2016

etherzhhb retitled D25861: Remove the unused POLLY_LINK_LIBS for linking polly into tools from to Remove the unused POLLY_LINK_LIBS for linking polly into tools.
Oct 20 2016, 6:56 PM

Oct 19 2016

etherzhhb added inline comments to D25807: Check latch block terminator instruction is a branch instruction.
Oct 19 2016, 5:26 PM

Oct 7 2016

etherzhhb updated the diff for D25372: [Polly] Define PATH_MAX on windows.

Do you mean something like this?

Oct 7 2016, 12:33 PM · Restricted Project
etherzhhb retitled D25372: [Polly] Define PATH_MAX on windows from to [Polly] Define PATH_MAX on windows.
Oct 7 2016, 10:49 AM · Restricted Project
etherzhhb added a comment to D25354: Treat polly as "in tree" if LLVM_EXTERNAL_POLLY_SOURCE_DIR is provided.

I tried the combination of {LLVM_POLLY_LINK_INTO_TOOLS On/Of} x {cmake from scratch/cmake on existing cmakecach}, and it passed check-all (which includes check-polly).

Oct 7 2016, 10:25 AM
etherzhhb added a comment to D25354: Treat polly as "in tree" if LLVM_EXTERNAL_POLLY_SOURCE_DIR is provided.

The only "tools/polly" I saw is :
./CMakeLists.txt:if (EXISTS ${LLVM_MAIN_SRC_DIR}/tools/polly/CMakeLists.txt)

Oct 7 2016, 9:06 AM

Oct 6 2016

etherzhhb retitled D25354: Treat polly as "in tree" if LLVM_EXTERNAL_POLLY_SOURCE_DIR is provided from to Treat polly as "in tree" if LLVM_EXTERNAL_POLLY_SOURCE_DIR is provided.
Oct 6 2016, 6:34 PM

Jun 7 2016

etherzhhb added inline comments to D21102: [Polly][GSoC 2016] Draft of using new pass manager to cache/invalidate scop analysis in a function pass.
Jun 7 2016, 2:27 PM
etherzhhb added a dependency for D21102: [Polly][GSoC 2016] Draft of using new pass manager to cache/invalidate scop analysis in a function pass: D20962: [Polly][GSoC 2016]New function pass ScopInfoWrapperPass.
Jun 7 2016, 2:24 PM
etherzhhb added a dependent revision for D20962: [Polly][GSoC 2016]New function pass ScopInfoWrapperPass: D21102: [Polly][GSoC 2016] Draft of using new pass manager to cache/invalidate scop analysis in a function pass.
Jun 7 2016, 2:24 PM
etherzhhb retitled D21102: [Polly][GSoC 2016] Draft of using new pass manager to cache/invalidate scop analysis in a function pass from to [Polly][GSoC 2016] Draft of using new pass manager to cache/invalidate scop analysis in a function pass.
Jun 7 2016, 2:23 PM

Jun 6 2016

etherzhhb added inline comments to D20962: [Polly][GSoC 2016]New function pass ScopInfoWrapperPass.
Jun 6 2016, 9:34 AM

Jun 2 2016

etherzhhb added inline comments to D20912: [Polly][GSoC 2016]Update ScopBuilder's memory management.
Jun 2 2016, 3:00 PM

May 5 2016

etherzhhb updated subscribers of D19886: Add ability to use DependenceAnalysis from LoopAccessAnalysis.
May 5 2016, 10:38 AM

May 4 2016

etherzhhb updated subscribers of D19886: Add ability to use DependenceAnalysis from LoopAccessAnalysis.
May 4 2016, 11:45 AM

Apr 6 2016

etherzhhb updated subscribers of D18818: [FIX] Adjust execution context of hoisted loads wrt. error domains.
Apr 6 2016, 2:59 AM

Mar 5 2016

etherzhhb retitled D17907: [Polly] from to [Polly] .
Mar 5 2016, 4:55 AM

Mar 4 2016

etherzhhb updated the diff for D17905: [Polly][DOC] Add fine-grain dependences analysis to release notes..

depednences -> dependences
acccess -> access

Mar 4 2016, 11:40 PM · Restricted Project
etherzhhb added a comment to D17905: [Polly][DOC] Add fine-grain dependences analysis to release notes..

LGTM besides a mire typo.

dence"
+pass provides dependences analysis at memory reference level and memory access level.
+The memory reference level analysis distinguishes the accessed references in the
+same statement, and generates depednences relationships between (statement, reference)
+pairs. The memory acccess level analysis distinguishes accesses in the same statement,
+and generates depednences relationships between (statement, access) pairs. These
+fine-grain depednences are enabled by "-polly-dependences-analysis-level=reference-level"

dependences.

Mar 4 2016, 11:07 PM · Restricted Project
etherzhhb retitled D17905: [Polly][DOC] Add fine-grain dependences analysis to release notes. from to [Polly][DOC] Add fine-grain dependences analysis to release notes..
Mar 4 2016, 7:48 PM · Restricted Project

Mar 3 2016

etherzhhb closed D17477: [Polly] [RFC] Allow the client of DependenceInfo to obtain dependences at different granularities..

r262591

Mar 3 2016, 12:23 AM

Mar 2 2016

etherzhhb added inline comments to D17477: [Polly] [RFC] Allow the client of DependenceInfo to obtain dependences at different granularities..
Mar 2 2016, 11:37 PM

Mar 1 2016

etherzhhb added inline comments to D17477: [Polly] [RFC] Allow the client of DependenceInfo to obtain dependences at different granularities..
Mar 1 2016, 5:19 PM

Feb 27 2016

etherzhhb added a comment to D17477: [Polly] [RFC] Allow the client of DependenceInfo to obtain dependences at different granularities..
Feb 27 2016, 12:09 AM
etherzhhb updated the diff for D17477: [Polly] [RFC] Allow the client of DependenceInfo to obtain dependences at different granularities..

Update based on the comments

Feb 27 2016, 12:07 AM

Feb 26 2016

etherzhhb added inline comments to D17477: [Polly] [RFC] Allow the client of DependenceInfo to obtain dependences at different granularities..
Feb 26 2016, 8:02 PM
etherzhhb added inline comments to D17477: [Polly] [RFC] Allow the client of DependenceInfo to obtain dependences at different granularities..
Feb 26 2016, 6:18 PM
etherzhhb added a comment to D17641: [Polly] [MemAccInst] Delete all the assignment operators, as they are not need..

I think I address the wrong question. The right question is:

Feb 26 2016, 5:40 PM · Restricted Project
etherzhhb added inline comments to D17250: [Polly] [Refactor] Enable llvm's isa/cast/dyn_cast on MemAccInst.
Feb 26 2016, 9:13 AM
etherzhhb added inline comments to D17641: [Polly] [MemAccInst] Delete all the assignment operators, as they are not need..
Feb 26 2016, 9:08 AM · Restricted Project
etherzhhb added inline comments to D17250: [Polly] [Refactor] Enable llvm's isa/cast/dyn_cast on MemAccInst.
Feb 26 2016, 9:02 AM
etherzhhb updated the diff for D17381: [Polly] [RFC] Fine-grain dependency analysis.

Update testcase.

Feb 26 2016, 8:52 AM
etherzhhb added inline comments to D17641: [Polly] [MemAccInst] Delete all the assignment operators, as they are not need..
Feb 26 2016, 8:50 AM · Restricted Project
etherzhhb added a comment to D17641: [Polly] [MemAccInst] Delete all the assignment operators, as they are not need..

I created these for the following reason:

As a general rule for 'pass-by-value' types, for every implicit copy-constructor, there should also also an operator=() for it. Otherwise, this works:

StoreInst *SI = [...]
MemAccInst x = SI;

but not this:

StoreInst *SI = [...]
MemAccInst x;
x = SI;

But we did write code like this (yet), right?

If assigning a nullptr to a MemAccInst is confusing, then assigning nullptr to a StoreInst* (which it mimics) must be equally confusing.

Ok.
Allow changing a MemAccInst from load to store also confuse me a little bit.

The only reason I can think of to remove these is that we currently do not assign to a MemAccInst variable.

Feb 26 2016, 8:49 AM · Restricted Project
etherzhhb added a comment to D12975: [Polly] De-LICM and De-GVN (WIP).

I need to read this again tomorrow

Feb 26 2016, 8:24 AM · Restricted Project
etherzhhb added a comment to D17250: [Polly] [Refactor] Enable llvm's isa/cast/dyn_cast on MemAccInst.

Updated

Feb 26 2016, 8:00 AM
etherzhhb updated the diff for D17250: [Polly] [Refactor] Enable llvm's isa/cast/dyn_cast on MemAccInst.
Feb 26 2016, 8:00 AM
etherzhhb added a comment to D12975: [Polly] De-LICM and De-GVN (WIP).

Can we put the algorithm to a ScopPass or another cpp file?

Feb 26 2016, 3:53 AM · Restricted Project
etherzhhb added a reviewer for D17641: [Polly] [MemAccInst] Delete all the assignment operators, as they are not need.: jdoerfert.
Feb 26 2016, 3:19 AM · Restricted Project
etherzhhb added a comment to D17641: [Polly] [MemAccInst] Delete all the assignment operators, as they are not need..

Dropping dead code is clearly a good thing and this indeed seems like a misuse of MemAccInst. We occasionally allow dead code in the main repository to reduce merge problems with external repositories, but this is clearly an exception. Let's wait for the OK from Johannes and Michael, just in case.

Feb 26 2016, 3:18 AM · Restricted Project
etherzhhb accepted D13611: [Polly] Create virtual independent blocks.

I change the status to make this patch not block on me. There is no major issue.

I think this patch is good to go once the comments are fixed.

Feb 26 2016, 3:17 AM
etherzhhb updated subscribers of D17641: [Polly] [MemAccInst] Delete all the assignment operators, as they are not need..

Maybe @jdoerfert has some local patches that need the assignment operator?

Feb 26 2016, 3:10 AM · Restricted Project
etherzhhb retitled D17641: [Polly] [MemAccInst] Delete all the assignment operators, as they are not need. from to [Polly] [MemAccInst] Delete all the assignment operators, as they are not need..
Feb 26 2016, 3:09 AM · Restricted Project

Feb 25 2016

etherzhhb added a comment to D17250: [Polly] [Refactor] Enable llvm's isa/cast/dyn_cast on MemAccInst.

not blocking, I just think this one is not as high priority as yours, so I
just wait to avoid unnecessary rebase on your side

Feb 25 2016, 7:50 AM
etherzhhb updated subscribers of D17250: [Polly] [Refactor] Enable llvm's isa/cast/dyn_cast on MemAccInst.

Still working in it? Due to MemIntrinsics, the macroization/templatization doesn't work anymore?.?

Feb 25 2016, 6:19 AM
etherzhhb added a comment to D17570: Introduce DominanceFrontierAnalysis to the new PassManager to compute DominanceFrontier. NFC.

Hi ether,

this patch looks good to me as well. I know we currently have no actual dominance frontier tests, but I think this would be a good occasion to add one. Domfrontier is hopefully removed at some point in time, but until this time comes it is good to have at least some basic test coverage.

Best,
Tobias

Feb 25 2016, 5:30 AM · Restricted Project

Feb 24 2016

etherzhhb added a dependent revision for D17570: Introduce DominanceFrontierAnalysis to the new PassManager to compute DominanceFrontier. NFC: D17571: Introduce RegionInfoAnalysis, which compute Region Tree in the new PassManager. NFC.
Feb 24 2016, 6:51 AM · Restricted Project
etherzhhb added a dependent revision for D17537: Introduce analysis pass to compute PostDominators in the new pass manager. NFC: D17571: Introduce RegionInfoAnalysis, which compute Region Tree in the new PassManager. NFC.
Feb 24 2016, 6:51 AM · Restricted Project
etherzhhb added dependencies for D17571: Introduce RegionInfoAnalysis, which compute Region Tree in the new PassManager. NFC: D17570: Introduce DominanceFrontierAnalysis to the new PassManager to compute DominanceFrontier. NFC, D17537: Introduce analysis pass to compute PostDominators in the new pass manager. NFC.
Feb 24 2016, 6:51 AM · Restricted Project
etherzhhb retitled D17571: Introduce RegionInfoAnalysis, which compute Region Tree in the new PassManager. NFC from to Introduce RegionInfoAnalysis, which compute Region Tree in the new PassManager. NFC.
Feb 24 2016, 6:51 AM · Restricted Project
etherzhhb retitled D17570: Introduce DominanceFrontierAnalysis to the new PassManager to compute DominanceFrontier. NFC from to Introduce DominanceFrontierAnalysis to the new PassManager to compute DominanceFrontier. NFC.
Feb 24 2016, 6:47 AM · Restricted Project
etherzhhb updated the diff for D17537: Introduce analysis pass to compute PostDominators in the new pass manager. NFC.

Include the changes in RegionInfo.cpp

Feb 24 2016, 6:44 AM · Restricted Project
etherzhhb added a reviewer for D17537: Introduce analysis pass to compute PostDominators in the new pass manager. NFC: jdoerfert.
Feb 24 2016, 12:33 AM · Restricted Project

Feb 23 2016

etherzhhb added a comment to D17381: [Polly] [RFC] Fine-grain dependency analysis.

Sven mentioned `isl_union_flow_get_full_may_dependence`, which might be exactly what you need. From ISL documentation:

The relation returned by C<isl_union_flow_get_full_may_dependence>
relates domain elements of must or may sources to pairs of
domain elements of the sink and accessed data elements.
This relation includes the previous relation as a subset.
Feb 23 2016, 6:15 AM
etherzhhb added a reviewer for D17477: [Polly] [RFC] Allow the client of DependenceInfo to obtain dependences at different granularities.: Meinersbur.
Feb 23 2016, 6:06 AM
etherzhhb retitled D17537: Introduce analysis pass to compute PostDominators in the new pass manager. NFC from to Introduce analysis pass to compute PostDominators in the new pass manager. NFC.
Feb 23 2016, 1:00 AM · Restricted Project

Feb 22 2016

etherzhhb accepted D5227: [Polly] Support ModRef function behaviour.

I think there is no major issue, and this patch had been review by several people. It should be ready to push

Feb 22 2016, 2:50 PM