fhahn (Florian Hahn)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 18 2016, 4:39 AM (100 w, 3 d)

Recent Activity

Today

fhahn added a comment to D43236: [LoopInterchange] Loops with empty dependency matrix are safe..

Hello, any reason why LoopInterchange pass is not on by default?

Sun, Jul 22, 9:37 AM

Fri, Jul 20

fhahn abandoned D48327: [IPSCC] Drop ParamState lattice value when marking a value as force constant..
Fri, Jul 20, 2:13 PM
fhahn added inline comments to D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..
Fri, Jul 20, 2:11 PM
fhahn updated the diff for D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..
Fri, Jul 20, 2:10 PM
fhahn updated the diff for D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..
Fri, Jul 20, 1:29 PM
fhahn added a comment to D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..

Address review comments, thanks!

Fri, Jul 20, 11:49 AM
fhahn updated the diff for D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..
Fri, Jul 20, 11:44 AM
fhahn added inline comments to D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..
Fri, Jul 20, 10:19 AM
fhahn updated the diff for D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..

Address next round of review comments, thanks! Also add some comments.

Fri, Jul 20, 10:15 AM
fhahn added a comment to D47475: [Local] Make DoesKMove required for combineMetadata..

Update to account for DoesKMove.

Fri, Jul 20, 9:16 AM
fhahn updated the diff for D47475: [Local] Make DoesKMove required for combineMetadata..
Fri, Jul 20, 9:16 AM
fhahn updated the diff for D47339: [GVN,NewGVN] Keep nonnull if K does not move..

Flip default for DoesKMove.

Fri, Jul 20, 9:16 AM
fhahn committed rL337554: [IPSCCP] Fix for bot failure caused by r337548.
[IPSCCP] Fix for bot failure caused by r337548
Fri, Jul 20, 7:42 AM
fhahn committed rL337548: Recommit r328307: [IPSCCP] Use constant range information for comparisons of….
Recommit r328307: [IPSCCP] Use constant range information for comparisons of…
Fri, Jul 20, 6:36 AM
fhahn committed rL337539: [UBSan] Also use blacklist for 'Address; Undefined' setting.
[UBSan] Also use blacklist for 'Address; Undefined' setting
Fri, Jul 20, 3:17 AM
fhahn closed D49558: [UBSan] Also use blacklist for 'Address; Undefined' setting.
Fri, Jul 20, 3:17 AM

Thu, Jul 19

fhahn added a comment to D47475: [Local] Make DoesKMove required for combineMetadata..

Also it allows sinking a load and preserving the nonnull metadata, if there are loads in all predecessors and they all have nonnull.

I would prefer to handle that specific case in some different way; it's not the same sort of reasoning. In the CSE case, it doesn't matter whether J has nonnull metadata.

Thu, Jul 19, 3:52 PM
fhahn updated the diff for D49558: [UBSan] Also use blacklist for 'Address; Undefined' setting.
Thu, Jul 19, 10:34 AM
fhahn created D49558: [UBSan] Also use blacklist for 'Address; Undefined' setting.
Thu, Jul 19, 10:33 AM
fhahn added inline comments to D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..
Thu, Jul 19, 10:27 AM
fhahn updated the diff for D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..

Address comments, thanks! I will add more comments tomorrow.

Thu, Jul 19, 10:26 AM
fhahn added inline comments to D49489: [VPlan] VPlan version of InterleavedAccessInfo..
Thu, Jul 19, 10:24 AM
fhahn updated the diff for D49489: [VPlan] VPlan version of InterleavedAccessInfo..

Delete allocated InterleaveGroups in destructor.

Thu, Jul 19, 10:24 AM
fhahn updated the diff for D49488: [LV] Move InterleaveGroup and InterleavedAccessInfo to VectorUtils.h (NFC).

Moved getMemInstAlignment and getMemInstAddressSpace to IR/Instructions.h which already contains similar helpers. Should I rename them to getLoadStoreAlignment and getLoadStoreAddressSpace to be more in line with the existing getLoadStorePointerOperand?

Thu, Jul 19, 10:06 AM
fhahn updated the diff for D47475: [Local] Make DoesKMove required for combineMetadata..

Given that it's UB to violate nonnull metadata, the metadata on J doesn't actually matter; the important question is whether K moves. If it does, we have to strip the nonnull metadata; it it doesn't, we don't. So "KDominatesJ" shouldn't exist, as far as I can tell; the boolean should just be "DoesKMove".

Thu, Jul 19, 9:30 AM
fhahn updated the diff for D47339: [GVN,NewGVN] Keep nonnull if K does not move..

Renamed KDominatesJ to DoesKMove as suggested by Eli in D47475.

Thu, Jul 19, 9:07 AM
fhahn added a comment to D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..

Thanks for all the feedback! My initial plan was to make VPlan based loop vectorization SLP aware, to improve on the cases mentioned earlier, where currently we do not do the best thing in LoopVectorize. That should take a bit of load off SLPVectorize, but would not replace the current SLPVectorizer for now.

Thu, Jul 19, 6:09 AM
fhahn accepted D49408: [SCCP] Don't use markForcedConstant on branch conditions..

LGTM, thanks!

Thu, Jul 19, 2:03 AM
fhahn abandoned D49384: [IPSCCP] Do not zap return if the return value is overdefined at any call site..

Abandoned in favor of D49408

Thu, Jul 19, 1:55 AM
fhahn added a comment to D48327: [IPSCC] Drop ParamState lattice value when marking a value as force constant..

Abandoned in favor of D49408

Thu, Jul 19, 1:55 AM

Wed, Jul 18

fhahn accepted D48816: [VPlan] Introduce VPLoopInfo analysis..

LGTM, thanks

Wed, Jul 18, 11:41 AM
fhahn added a comment to D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..

What is your plan for this vs SLPVectorizer? How do they compare wrt vectorized codegen?

Wed, Jul 18, 11:39 AM
fhahn added a comment to D47475: [Local] Make DoesKMove required for combineMetadata..

ping. The langref now says the following about !nonnull loads: The existence of the !nonnull metadata on the instruction tells the optimizer that the value loaded is known to never be null. If the value is null at runtime, the behavior is undefined.. With the value being null at runetime being UB, keeping nonnull on dominating loads should be ok IIUC.

Wed, Jul 18, 9:06 AM
fhahn added a dependent revision for D49489: [VPlan] VPlan version of InterleavedAccessInfo.: D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..
Wed, Jul 18, 8:50 AM
fhahn added a dependency for D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan.: D49489: [VPlan] VPlan version of InterleavedAccessInfo..
Wed, Jul 18, 8:50 AM
fhahn created D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..
Wed, Jul 18, 8:50 AM
fhahn added a comment to D49488: [LV] Move InterleaveGroup and InterleavedAccessInfo to VectorUtils.h (NFC).

I like the idea of the interleave analysis to be at a higher ground, but we have to be careful with LV-specific logic and only hoist what it truly generic.

Some comments inline.

Wed, Jul 18, 8:49 AM
fhahn added a dependency for D49489: [VPlan] VPlan version of InterleavedAccessInfo.: D49488: [LV] Move InterleaveGroup and InterleavedAccessInfo to VectorUtils.h (NFC).
Wed, Jul 18, 8:21 AM
fhahn added a dependent revision for D49488: [LV] Move InterleaveGroup and InterleavedAccessInfo to VectorUtils.h (NFC): D49489: [VPlan] VPlan version of InterleavedAccessInfo..
Wed, Jul 18, 8:21 AM
fhahn created D49489: [VPlan] VPlan version of InterleavedAccessInfo..
Wed, Jul 18, 8:21 AM
fhahn updated subscribers of D49488: [LV] Move InterleaveGroup and InterleavedAccessInfo to VectorUtils.h (NFC).
Wed, Jul 18, 8:18 AM
fhahn created D49488: [LV] Move InterleaveGroup and InterleavedAccessInfo to VectorUtils.h (NFC).
Wed, Jul 18, 8:18 AM
fhahn added a comment to D49408: [SCCP] Don't use markForcedConstant on branch conditions..

I just collected stats with this patch on the test-suite with LTO. The only difference in stats counters across IPSCCP and SCCP is that with this patch, we get 2 more instructions eliminated in SCCP (sccp.NumInstRemoved).

Wed, Jul 18, 8:05 AM

Tue, Jul 17

fhahn added inline comments to D48815: [VPlan] Introduce VPlan-based dominator analysis..
Tue, Jul 17, 1:49 PM
fhahn committed rL337303: Revert rL337292 due to another MSVC STL problem..
Revert rL337292 due to another MSVC STL problem.
Tue, Jul 17, 10:17 AM
fhahn added a reverting commit for rL337292: Recommit r334887: [SmallSet] Add SmallSetIterator.: rL337303: Revert rL337292 due to another MSVC STL problem..
Tue, Jul 17, 10:17 AM
fhahn committed rL337292: Recommit r334887: [SmallSet] Add SmallSetIterator..
Recommit r334887: [SmallSet] Add SmallSetIterator.
Tue, Jul 17, 8:29 AM
fhahn added a comment to D49384: [IPSCCP] Do not zap return if the return value is overdefined at any call site..

Thought about it a bit more, came up with an alternative fix: https://reviews.llvm.org/D49408. It's a bit more aggressive, and avoids the weirdness of calling markForcedConstant on an arbitrary value.

Tue, Jul 17, 7:11 AM
fhahn committed rL337283: [IPSCCP] Run Solve each time we resolved an undef in a function..
[IPSCCP] Run Solve each time we resolved an undef in a function.
Tue, Jul 17, 7:10 AM
fhahn closed D49385: [IPSCCP] Run Solve each time we resolved an undef in a function..
Tue, Jul 17, 7:10 AM
fhahn added a comment to rC337226: Restructure checking for, and warning on, lifetime extension..

I temporarily reverted this patch in rC337255 because it triggers a static_assert in PointerIntPair on ARM (e.g. http://lab.llvm.org:8011/builders/clang-cmake-armv7-global-isel/builds/1330, http://lab.llvm.org:8011/builders/clang-cmake-armv7-full/builds/1394)

Tue, Jul 17, 2:33 AM
fhahn committed rL337255: Temporarily revert r337226 "Restructure checking for, and warning on, lifetime….
Temporarily revert r337226 "Restructure checking for, and warning on, lifetime…
Tue, Jul 17, 2:29 AM
fhahn committed rC337255: Temporarily revert r337226 "Restructure checking for, and warning on, lifetime….
Temporarily revert r337226 "Restructure checking for, and warning on, lifetime…
Tue, Jul 17, 2:28 AM
fhahn added a reviewer for D49407: Add a relocation for R_AARCH64_ABS32 in ObjectFileELF: peter.smith.
Tue, Jul 17, 1:52 AM

Mon, Jul 16

fhahn added a comment to D49384: [IPSCCP] Do not zap return if the return value is overdefined at any call site..

Stuff like this really makes me want to kill off ResolveUndefsIn. But this works for now.

Mon, Jul 16, 3:01 PM
fhahn added a comment to D49385: [IPSCCP] Run Solve each time we resolved an undef in a function..

Computationally the amount of work we are doing stays the same

I don't think this is right; each call to Solve() has a cost proportional to the size of the module, if I'm not mistaken.

Mon, Jul 16, 2:58 PM
fhahn added a comment to D49126: [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types..

Thank you very much Eli! There was a problem with the SmallSet iterator because of MSVC STL's std::set iterator not being trivially copy constructible. I'll commit this once I manged to resolve the SmallSet iterator issue.

Mon, Jul 16, 1:36 PM
fhahn added a comment to D47949: [callsitesplit] Limit the # of predecessors walk when recording condition.

Sorry for coming back to this just now. Unfortunately I won't have time to turn this into a forward-style analysis before the 7.0 branch. IMO it would be fine to get this in for the 7.0 branch, to limit compile time in edge cases, and creating a ticket to improve the situation. What do you think @davide ? In general, currently we are only supporting splitting a very limited set of call sites, so we would have to limit the forward-analysis to the relevant call sites, otherwise we end up doing (much) more work on average.

Mon, Jul 16, 9:57 AM
fhahn created D49385: [IPSCCP] Run Solve each time we resolved an undef in a function..
Mon, Jul 16, 9:50 AM
fhahn created D49384: [IPSCCP] Do not zap return if the return value is overdefined at any call site..
Mon, Jul 16, 9:47 AM

Fri, Jul 13

fhahn added a comment to D47942: [SmallSet] Add SmallSetIterator..

err, hit send too soon: not trivially copy constructible in MSVC's STL.

Fri, Jul 13, 9:22 AM
fhahn added a comment to D47942: [SmallSet] Add SmallSetIterator..

The windows bots have surfaced another problem: set<T>::const_iterator is not trivially copy constructible... Not sure how to best work around that yet.

Fri, Jul 13, 9:21 AM
fhahn added a comment to D47854: [LangRef] Clarify semantics of load metadata..

Thanks for clarifying this Eli! Treating loading a null value of a nonnull load as UB should allow us to not drop nonnull from loads in some cases (D47339)

Fri, Jul 13, 7:37 AM
fhahn added inline comments to D48818: [VPlan] Introduce simplifyPlainCFG step in H-CFG builder..
Fri, Jul 13, 7:19 AM
fhahn added inline comments to D48818: [VPlan] Introduce simplifyPlainCFG step in H-CFG builder..
Fri, Jul 13, 7:09 AM
fhahn added inline comments to D48818: [VPlan] Introduce simplifyPlainCFG step in H-CFG builder..
Fri, Jul 13, 7:01 AM
fhahn added inline comments to D48816: [VPlan] Introduce VPLoopInfo analysis..
Fri, Jul 13, 6:43 AM
fhahn added inline comments to D48815: [VPlan] Introduce VPlan-based dominator analysis..
Fri, Jul 13, 6:16 AM

Wed, Jul 11

fhahn updated the diff for D49126: [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types..

Use SmallSet + AssertingVH

Wed, Jul 11, 9:43 AM
fhahn added a comment to D47942: [SmallSet] Add SmallSetIterator..

Recommitted as rL336805, with only the subset of is_trivially_XXX provided by GCC 4.8 and llvm/Support/type_traits.h

Wed, Jul 11, 9:28 AM
fhahn committed rL336805: Recommit r334887: [SmallSet] Add SmallSetIterator..
Recommit r334887: [SmallSet] Add SmallSetIterator.
Wed, Jul 11, 6:45 AM
fhahn committed rL336792: Recommit r336653: [VPlan] Add VPlanTestBase.h with helper.
Recommit r336653: [VPlan] Add VPlanTestBase.h with helper
Wed, Jul 11, 4:59 AM

Tue, Jul 10

fhahn added inline comments to D49126: [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types..
Tue, Jul 10, 2:20 PM
fhahn updated the diff for D49126: [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types..

Thanks Eli! I am not really happy with the solution, but as discussed in D48541 solving that generally seems quite an invasive change.

Tue, Jul 10, 2:19 PM
fhahn added a comment to D48541: [Bitcode, Type] Assign deterministic IDs to unnamed types at creation time..

I have created D49126 to deal with this problem locally in PredicateInfo, which seems the only place where this is currently causing any problems. It is easier to do there, as we can clean up any ssa_copy calls and declarations when destroying PredicateInfo. I also raised https://bugs.llvm.org/show_bug.cgi?id=38117 for a general solution.

Tue, Jul 10, 3:55 AM
fhahn created D49126: [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types..
Tue, Jul 10, 3:53 AM
fhahn committed rL336653: [VPlan] Add VPlanTestBase.h with helper class to build VPlan for tests..
[VPlan] Add VPlanTestBase.h with helper class to build VPlan for tests.
Tue, Jul 10, 3:50 AM
fhahn closed D49032: [VPlan] Add VPlanTestBase.h with helper class to build VPlan for tests..
Tue, Jul 10, 3:50 AM

Mon, Jul 9

fhahn abandoned D48541: [Bitcode, Type] Assign deterministic IDs to unnamed types at creation time..

Thanks @chandlerc, I think it is too fragile and I want to avoid unnecessary changes here. To get PredicateInfo working with unnamed types, it is probably easier to use a custom mangling for ssa_copy there; we can rely on the order we create ssa_copy calls and clean up all declarations we created after the predicateinfo is destroyed.

Mon, Jul 9, 11:51 AM

Fri, Jul 6

fhahn added inline comments to D48541: [Bitcode, Type] Assign deterministic IDs to unnamed types at creation time..
Fri, Jul 6, 11:28 AM
fhahn added inline comments to D48815: [VPlan] Introduce VPlan-based dominator analysis..
Fri, Jul 6, 9:44 AM
fhahn created D49032: [VPlan] Add VPlanTestBase.h with helper class to build VPlan for tests..
Fri, Jul 6, 9:42 AM
fhahn committed rL336429: [Driver,AArch64] Add support for -mcpu=native..
[Driver,AArch64] Add support for -mcpu=native.
Fri, Jul 6, 3:55 AM
fhahn committed rC336429: [Driver,AArch64] Add support for -mcpu=native..
[Driver,AArch64] Add support for -mcpu=native.
Fri, Jul 6, 3:55 AM
fhahn closed D48931: [Driver,AArch64] Add support for -mcpu=native..
Fri, Jul 6, 3:54 AM · Restricted Project
fhahn accepted D48814: [VPlan] Introduce condition bit in VPBlockBase..

LGTM, thanks.

Fri, Jul 6, 2:35 AM

Thu, Jul 5

fhahn updated the diff for D48541: [Bitcode, Type] Assign deterministic IDs to unnamed types at creation time..

I've updated the patch to generate the IDs for unnamed types at creation time and also updated the bitcode writer to write the unamed types first, in the order they were created. This way, the IDs matche between serializing and de-serializing.

Thu, Jul 5, 5:47 AM

Wed, Jul 4

fhahn added a comment to D48931: [Driver,AArch64] Add support for -mcpu=native..

Looks ok to me. I've checked that gcc also supports -mcpu=native on an AArch64 machine. It also supports -march=native. While I don't think that this is necessary to support it for this patch is it worth considering as well?

Wed, Jul 4, 10:07 AM · Restricted Project
fhahn added a reviewer for D48931: [Driver,AArch64] Add support for -mcpu=native.: t.p.northover.
Wed, Jul 4, 7:44 AM · Restricted Project
fhahn created D48931: [Driver,AArch64] Add support for -mcpu=native..
Wed, Jul 4, 4:20 AM · Restricted Project

Tue, Jul 3

fhahn added a comment to D48327: [IPSCC] Drop ParamState lattice value when marking a value as force constant..

ping

Tue, Jul 3, 11:29 AM
fhahn added a comment to D43245: [LoopInterchange] Support reductions across inner and outer loop..

ping

Tue, Jul 3, 11:28 AM
fhahn accepted D48869: [AArch64][SVE] Asm: Support for SVE condition code aliases.

LGTM, thanks

Tue, Jul 3, 4:19 AM
fhahn accepted D48824: [AArch64][SVE] Asm: Support for FP Complex ADD/MLA..

LGTM, thanks!

Tue, Jul 3, 4:13 AM
fhahn accepted D48823: [AArch64][SVE] Asm: Support for FMUL (indexed).

LGTM, thanks!

Tue, Jul 3, 4:11 AM
fhahn added a comment to D43762: [IPSCCP] Use constant range information for comparisons of parameters..

I've finally had some time to come back to this change (sorry for the long delay!) and committed an updated version of this patch as rL336098.

Tue, Jul 3, 3:13 AM

Mon, Jul 2

fhahn committed rL336098: Recommit r328307: [IPSCCP] Use constant range information for comparisons of….
Recommit r328307: [IPSCCP] Use constant range information for comparisons of…
Mon, Jul 2, 5:48 AM

Thu, Jun 28

fhahn added a comment to D48541: [Bitcode, Type] Assign deterministic IDs to unnamed types at creation time..

Maybe we could set names for the types in question? It's kind of awkward, but it should work, I think...

Alternatively, you could avoid generating ssa_copy calls which require mangling non-literal structs; assuming you don't need to ssa_copy first-class aggregates, struct types only show up in pointers, and you can always bitcast pointers to i8*.

Thu, Jun 28, 8:09 AM
fhahn added a comment to D47943: Sample code for porting MachinePipeliner to AArch64+SVE.

Thank you for your detailed comment.
Your points make sense to me.

I should have clarified the intent of this patch.
I do not think that this patch will be accepted.
This is aimed to show that we can generate code without DFAPacketizer with as few changes as possible.
For that reason, the method interface and code keeps the original code as much as possible.

Thu, Jun 28, 3:20 AM
fhahn committed rL335820: [SCCP] Mark CFG as preserved..
[SCCP] Mark CFG as preserved.
Thu, Jun 28, 2:58 AM