fhahn (Florian Hahn)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Fri, Sep 21

fhahn added a comment to D51431: [WIP][IPSCCP] Add lattice value for != constant and propagate nonnull..

ping

Fri, Sep 21, 3:41 PM
fhahn added a comment to D51629: [Local] Keep K's range if K does not move when combining metadata..

ping

Fri, Sep 21, 3:41 PM

Thu, Sep 20

fhahn accepted D51939: [AArch64] -mcpu=native CPU detection for Cavium processors.

LGTM. Could you please add a unittest similar to the one added in D40985?

Thu, Sep 20, 3:55 PM
fhahn added a comment to D52307: [LoopRotate] Fix lifetime handling..

An alloca can have multiple associated lifetime start/ends. Inlining routinely generates code like that, unrolling generates code like that, etc. And stack coloring knows how to handle such code.

Granted, the way the intrinsic is specified makes everything related to it pretty confusing.

Thu, Sep 20, 3:50 PM
fhahn added a comment to D52312: [DenseMapInfo] Add implementation for SmallVector of pointers..

I'm concerned about propagating this pattern. DenseSet, like DenseMap, is tuned for small keys and values. SmallVector<void*,4> is not exactly small, at 48B. And this patch makes it easy to throw much larger SmallVectors into these containers.

Thu, Sep 20, 2:26 PM
fhahn added a comment to D52307: [LoopRotate] Fix lifetime handling..

Duplicating lifetime.start and lifetime.end intrinsics isn't fundamentally a problem, as long as they stay correctly paired. What is this supposed to solve?

Thu, Sep 20, 1:29 PM
fhahn added inline comments to D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..
Thu, Sep 20, 9:30 AM
fhahn added a dependency for D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan.: D52312: [DenseMapInfo] Add implementation for SmallVector of pointers..
Thu, Sep 20, 9:25 AM
fhahn added a dependent revision for D52312: [DenseMapInfo] Add implementation for SmallVector of pointers.: D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..
Thu, Sep 20, 9:25 AM
fhahn removed a dependent revision for D52312: [DenseMapInfo] Add implementation for SmallVector of pointers.: D49489: [VPlan] VPlan version of InterleavedAccessInfo..
Thu, Sep 20, 9:25 AM
fhahn removed a dependency for D49489: [VPlan] VPlan version of InterleavedAccessInfo.: D52312: [DenseMapInfo] Add implementation for SmallVector of pointers..
Thu, Sep 20, 9:25 AM
fhahn added a dependency for D49489: [VPlan] VPlan version of InterleavedAccessInfo.: D52312: [DenseMapInfo] Add implementation for SmallVector of pointers..
Thu, Sep 20, 9:24 AM
fhahn added a dependent revision for D52312: [DenseMapInfo] Add implementation for SmallVector of pointers.: D49489: [VPlan] VPlan version of InterleavedAccessInfo..
Thu, Sep 20, 9:24 AM
fhahn created D52312: [DenseMapInfo] Add implementation for SmallVector of pointers..
Thu, Sep 20, 9:24 AM
fhahn updated the diff for D52307: [LoopRotate] Fix lifetime handling..

Move the lifetime handling before cloning the instruction. The cases where we delete the clone do not apply to lifetime intrinsics anyways, so there is no need to clone it in that case.

Thu, Sep 20, 9:11 AM
fhahn updated the diff for D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..

Rebased and added comments.

Thu, Sep 20, 9:05 AM
fhahn added a comment to D52307: [LoopRotate] Fix lifetime handling..

I think this fixes a longstanding bug report PR15376.

Thu, Sep 20, 8:59 AM
fhahn created D52307: [LoopRotate] Fix lifetime handling..
Thu, Sep 20, 8:01 AM
fhahn accepted D50094: Introduce DebugCounter into ConstProp pass.

LGTM thanks! It would be great if you could also add a simple test case.

Thu, Sep 20, 6:56 AM
fhahn accepted D52067: [inline Cost] Don't mark function accessing varargs as non-inlinable.

LGTM, with my previous comments.

Thu, Sep 20, 5:12 AM
fhahn added a comment to D52067: [inline Cost] Don't mark function accessing varargs as non-inlinable.

I simplified it. I am not sure how I can get rid of va_list; what i am testing is va_start calledin the caller and va_end in the callee. I need to have va_list to pass it from the caller to the callee.

Thu, Sep 20, 5:07 AM

Wed, Sep 19

fhahn added a comment to D52232: [IPSCCP] Fix a problem with removing labels in a switch with undef condition.

It's probably worth waiting with committing until tomorrow, in case Eli has any more suggestions

Wed, Sep 19, 3:26 AM
fhahn accepted D52232: [IPSCCP] Fix a problem with removing labels in a switch with undef condition.

LGTM

Wed, Sep 19, 3:23 AM

Tue, Sep 18

fhahn added a comment to D51595: [NewGVN] Update use counts for SSA copies when replacing them by their operands..

ping

Tue, Sep 18, 2:47 AM

Sun, Sep 16

fhahn added a dependency for D51702: [LoopInterchange] Turn into a loop pass. : D52154: [LoopInterchange] Preserve LCSSA..
Sun, Sep 16, 1:19 PM
fhahn added a dependent revision for D52154: [LoopInterchange] Preserve LCSSA.: D51702: [LoopInterchange] Turn into a loop pass. .
Sun, Sep 16, 1:19 PM
fhahn created D52154: [LoopInterchange] Preserve LCSSA..
Sun, Sep 16, 1:18 PM

Fri, Sep 14

fhahn added inline comments to D51431: [WIP][IPSCCP] Add lattice value for != constant and propagate nonnull..
Fri, Sep 14, 12:12 PM
fhahn added a comment to D51168: [NewGVN] Make sure we do not add a user to itself..

ping

Fri, Sep 14, 8:07 AM
fhahn added inline comments to D52067: [inline Cost] Don't mark function accessing varargs as non-inlinable.
Fri, Sep 14, 2:08 AM
fhahn committed rL342209: [LoopInterchange] Preserve ScalarEvolution, by forgetting about interchanged….
[LoopInterchange] Preserve ScalarEvolution, by forgetting about interchanged…
Fri, Sep 14, 12:52 AM
fhahn closed D52026: [LoopInterchange] Preserve ScalarEvolution, by forgetting about interchanged loops..
Fri, Sep 14, 12:52 AM

Thu, Sep 13

fhahn added a comment to D51702: [LoopInterchange] Turn into a loop pass. .

Further testing surfaced a few cases where ScalarEvolution and LCSSA are not preserved properly. I'll fix those issues first.

Thu, Sep 13, 9:46 AM
fhahn added a dependency for D51702: [LoopInterchange] Turn into a loop pass. : D52026: [LoopInterchange] Preserve ScalarEvolution, by forgetting about interchanged loops..
Thu, Sep 13, 5:25 AM
fhahn added a dependent revision for D52026: [LoopInterchange] Preserve ScalarEvolution, by forgetting about interchanged loops.: D51702: [LoopInterchange] Turn into a loop pass. .
Thu, Sep 13, 5:25 AM
fhahn created D52026: [LoopInterchange] Preserve ScalarEvolution, by forgetting about interchanged loops..
Thu, Sep 13, 5:25 AM

Wed, Sep 12

fhahn updated subscribers of D51664: [IR] Lazily number instructions for local dominance queries.

FWIW, it seems like OrderedBB invalidation is causing bugs at least in LoopSafetyInfo (D50377) which @mkazantsev is currently working on fixing. There might be other places that get this wrong too, so having automatic invalidation seems like another good plus on top of the speedups.

Wed, Sep 12, 2:34 PM
fhahn added inline comments to D50820: [VPlan] Implement initial vector code generation support for simple outer loops..
Wed, Sep 12, 7:57 AM
fhahn committed rL342058: [PatternMatch] Use generic One,Two,ThreeOps_match classes (NFC)..
[PatternMatch] Use generic One,Two,ThreeOps_match classes (NFC).
Wed, Sep 12, 7:54 AM
fhahn closed D51044: [PatternMatch] Use generic One,Two,ThreeOps_match classes (NFC)..
Wed, Sep 12, 7:54 AM
fhahn added a comment to D51044: [PatternMatch] Use generic One,Two,ThreeOps_match classes (NFC)..

Thanks Sjoerd!

Wed, Sep 12, 5:59 AM
fhahn committed rL342027: [LV] Move InterleaveGroup and InterleavedAccessInfo to VectorUtils.h (NFC).
[LV] Move InterleaveGroup and InterleavedAccessInfo to VectorUtils.h (NFC)
Wed, Sep 12, 1:04 AM
fhahn closed D49488: [LV] Move InterleaveGroup and InterleavedAccessInfo to VectorUtils.h (NFC).
Wed, Sep 12, 1:04 AM

Tue, Sep 11

fhahn added a comment to D51629: [Local] Keep K's range if K does not move when combining metadata..

ping

Tue, Sep 11, 2:32 PM
fhahn committed rL341970: [CallSiteSplitting] Add debug location to created PHI nodes..
[CallSiteSplitting] Add debug location to created PHI nodes.
Tue, Sep 11, 10:57 AM
fhahn closed D51919: [CallSiteSplitting] Add debug location to created PHI nodes..
Tue, Sep 11, 10:57 AM · debug-info
fhahn added inline comments to D51919: [CallSiteSplitting] Add debug location to created PHI nodes..
Tue, Sep 11, 9:22 AM · debug-info
fhahn updated the diff for D51919: [CallSiteSplitting] Add debug location to created PHI nodes..

Strengthen test checks

Tue, Sep 11, 9:22 AM · debug-info
fhahn updated the diff for D49488: [LV] Move InterleaveGroup and InterleavedAccessInfo to VectorUtils.h (NFC).

Thanks! I've rebased the patch and will wait for a bit, in case there are any additional concerns, please let me know.

Tue, Sep 11, 8:43 AM
fhahn added a comment to D51923: [NFC] Add validation to Ordered Instructions.

D51664 gets rid of building OrderedBasicBlocks and comes with its own validation of the ordering.

Tue, Sep 11, 4:09 AM
fhahn created D51922: [NewGVN] Apply SimplifySelectInst if any of the options is undef..
Tue, Sep 11, 3:37 AM
fhahn created D51919: [CallSiteSplitting] Add debug location to created PHI nodes..
Tue, Sep 11, 2:53 AM · debug-info

Mon, Sep 10

fhahn added a comment to D51595: [NewGVN] Update use counts for SSA copies when replacing them by their operands..

ping

Mon, Sep 10, 8:36 AM

Fri, Sep 7

fhahn committed rL341666: [InstCombine] Do not fold scalar ops over select with vector condition..
[InstCombine] Do not fold scalar ops over select with vector condition.
Fri, Sep 7, 7:44 AM
fhahn closed D51781: [InstCombine] Do not fold scalar ops over select with vector condition. .
Fri, Sep 7, 7:44 AM
fhahn added a comment to D51781: [InstCombine] Do not fold scalar ops over select with vector condition. .

Thank you very much for having a look so quickly!

Fri, Sep 7, 7:43 AM
fhahn added inline comments to D51781: [InstCombine] Do not fold scalar ops over select with vector condition. .
Fri, Sep 7, 7:31 AM
fhahn updated the diff for D51781: [InstCombine] Do not fold scalar ops over select with vector condition. .

Adjusted comment and simplified test case.

Fri, Sep 7, 7:31 AM
fhahn added a comment to D51505: [WIP][IPSCCP] Use PredInfo to propagate nonnull and hook it up to IPSCCP..

This is not ready for review yet, I'll continue with this if D51505 is submitted.

Fri, Sep 7, 7:00 AM
fhahn added a dependent revision for D51431: [WIP][IPSCCP] Add lattice value for != constant and propagate nonnull.: D51505: [WIP][IPSCCP] Use PredInfo to propagate nonnull and hook it up to IPSCCP..
Fri, Sep 7, 6:55 AM
fhahn added a dependency for D51505: [WIP][IPSCCP] Use PredInfo to propagate nonnull and hook it up to IPSCCP.: D51431: [WIP][IPSCCP] Add lattice value for != constant and propagate nonnull..
Fri, Sep 7, 6:55 AM
fhahn created D51781: [InstCombine] Do not fold scalar ops over select with vector condition. .
Fri, Sep 7, 6:11 AM
fhahn committed rL341651: [NewGVN] Mark function as changed if we erase instructions..
[NewGVN] Mark function as changed if we erase instructions.
Fri, Sep 7, 4:44 AM
fhahn closed D51169: [NewGVN] Mark function as changed if we erase instructions..
Fri, Sep 7, 4:44 AM
fhahn added a comment to D50094: Introduce DebugCounter into ConstProp pass.

IIUC by always adding to the end of WorkListVec, we could end up using substantial more memory, depending on the input program. In practice it shouldn't be too bad, as I think an upper bound for the times an instruction is added to WorkListVec is the number of operands (it will only get added if one of its operands gets constant folded, and once an operand is constant folded, it won't get folded again). And usually most instructions have a small number of operands.

Fri, Sep 7, 2:42 AM

Thu, Sep 6

fhahn updated the diff for D51169: [NewGVN] Mark function as changed if we erase instructions..
Thu, Sep 6, 7:49 AM
fhahn added a comment to D51169: [NewGVN] Mark function as changed if we erase instructions..

An alternative could perhaps be to do something like this

Changed |= !InstructionsToErase.empty();

before the loop (assuming that if we got something in InstructionsToErase then we also have done some modifications).
But I think your solution (setting Changed whenever we do a change) is easier to understand.

Thanks for the patch. LGTM!

Thu, Sep 6, 7:26 AM
fhahn updated the diff for D51702: [LoopInterchange] Turn into a loop pass. .

Rebased after rL341537

Thu, Sep 6, 6:16 AM
fhahn added a comment to D51168: [NewGVN] Make sure we do not add a user to itself..

ping

Thu, Sep 6, 6:10 AM
fhahn committed rL341537: [LoopInterchange] Cleanup unused variables..
[LoopInterchange] Cleanup unused variables.
Thu, Sep 6, 3:42 AM
fhahn committed rL341533: [LoopInterchange] Move preheader creation to transform stage and simplify..
[LoopInterchange] Move preheader creation to transform stage and simplify.
Thu, Sep 6, 2:59 AM
fhahn closed D51703: [LoopInterchange] Move preheader creation to transform stage and simplify..
Thu, Sep 6, 2:59 AM
fhahn updated the diff for D51703: [LoopInterchange] Move preheader creation to transform stage and simplify..

Add comment

Thu, Sep 6, 2:35 AM

Wed, Sep 5

fhahn created D51703: [LoopInterchange] Move preheader creation to transform stage and simplify..
Wed, Sep 5, 12:12 PM
fhahn created D51702: [LoopInterchange] Turn into a loop pass. .
Wed, Sep 5, 12:11 PM
fhahn added inline comments to D51702: [LoopInterchange] Turn into a loop pass. .
Wed, Sep 5, 12:11 PM
fhahn accepted D50820: [VPlan] Implement initial vector code generation support for simple outer loops..

LGTM with some more nits to the test cases. The EnableVPlanNativePath sprinkled around are not ideal, but I don't think there is a better alternative and we should be able to get rid of them as we go along. Please wait a few days with submitting this, to give other people a change to raise any additional concerns.

Wed, Sep 5, 2:54 AM
fhahn added a comment to D51044: [PatternMatch] Use generic One,Two,ThreeOps_match classes (NFC)..

ping

Wed, Sep 5, 1:48 AM

Tue, Sep 4

fhahn added a comment to D49488: [LV] Move InterleaveGroup and InterleavedAccessInfo to VectorUtils.h (NFC).

ping

Tue, Sep 4, 7:25 AM
fhahn added a comment to D49491: [RFC][VPlan, SLP] Add simple SLP analysis on top of VPlan..

ping

Tue, Sep 4, 7:24 AM
fhahn added a comment to D50820: [VPlan] Implement initial vector code generation support for simple outer loops..

I just tried to build your patch, and it triggers

lib/Transforms/Vectorize/LoopVectorize.cpp:1288: bool llvm::LoopVectorizationCostModel::isScalarAfterVectorization(llvm::Instruction*, unsigned int) const: Assertion `ScalarsPerVF != Scalars.end() && "Scalar values are not calculated for VF"' failed.

for the vplan tests.

Tue, Sep 4, 7:23 AM
fhahn added a comment to D50820: [VPlan] Implement initial vector code generation support for simple outer loops..

I just tried to build your patch, and it triggers

lib/Transforms/Vectorize/LoopVectorize.cpp:1288: bool llvm::LoopVectorizationCostModel::isScalarAfterVectorization(llvm::Instruction*, unsigned int) const: Assertion `ScalarsPerVF != Scalars.end() && "Scalar values are not calculated for VF"' failed.
Tue, Sep 4, 7:18 AM
fhahn created D51629: [Local] Keep K's range if K does not move when combining metadata..
Tue, Sep 4, 7:04 AM

Mon, Sep 3

fhahn added a comment to D51435: [SLC] Support expanding pow(x, n+0.5) to x * x * ... * sqrt(x).

Great, thanks for the review!

Mon, Sep 3, 10:39 AM
fhahn committed rL341330: [SLC] Support expanding pow(x, n+0.5) to x * x * ... * sqrt(x).
[SLC] Support expanding pow(x, n+0.5) to x * x * ... * sqrt(x)
Mon, Sep 3, 10:38 AM
fhahn closed D51435: [SLC] Support expanding pow(x, n+0.5) to x * x * ... * sqrt(x).
Mon, Sep 3, 10:38 AM
fhahn added a comment to D51435: [SLC] Support expanding pow(x, n+0.5) to x * x * ... * sqrt(x).

Ok thanks! So I can commit this patch as is?

Mon, Sep 3, 8:15 AM
fhahn added a comment to D51435: [SLC] Support expanding pow(x, n+0.5) to x * x * ... * sqrt(x).

Comment + extra tests look good.

Given the revert of D49273, make the getSqrtCall() diff an NFC commit ahead of this patch + generalize that for any libcall, so we make sure that we're not generating libcalls when we're not allowed to?

Mon, Sep 3, 6:58 AM
fhahn created D51595: [NewGVN] Update use counts for SSA copies when replacing them by their operands..
Mon, Sep 3, 6:50 AM
fhahn added inline comments to D51431: [WIP][IPSCCP] Add lattice value for != constant and propagate nonnull..
Mon, Sep 3, 5:14 AM
fhahn updated the diff for D51431: [WIP][IPSCCP] Add lattice value for != constant and propagate nonnull..
Mon, Sep 3, 5:07 AM
fhahn added a comment to D51431: [WIP][IPSCCP] Add lattice value for != constant and propagate nonnull..

updated merging of unknown and notconstant values to go to overdefined

Mon, Sep 3, 5:07 AM

Fri, Aug 31

fhahn planned changes to D43245: [LoopInterchange] Support reductions across inner and outer loop..
Fri, Aug 31, 12:26 PM
fhahn added a comment to D43245: [LoopInterchange] Support reductions across inner and outer loop..

Thanks Eli!

Fri, Aug 31, 12:26 PM

Thu, Aug 30

fhahn added reviewers for D50820: [VPlan] Implement initial vector code generation support for simple outer loops.: mkuper, hfinkel, Ayal.
Thu, Aug 30, 2:10 PM
fhahn added a comment to D51431: [WIP][IPSCCP] Add lattice value for != constant and propagate nonnull..

Does this patch + https://reviews.llvm.org/D50039 optimizes following code?

int l = strlen(s);
if (!s) <-- remove this condition

return -1;

return len;

Thu, Aug 30, 1:49 PM
fhahn created D51505: [WIP][IPSCCP] Use PredInfo to propagate nonnull and hook it up to IPSCCP..
Thu, Aug 30, 1:47 PM
fhahn added a comment to D51169: [NewGVN] Mark function as changed if we erase instructions..

ping

Thu, Aug 30, 1:42 PM
fhahn added a comment to D51168: [NewGVN] Make sure we do not add a user to itself..

ping

Thu, Aug 30, 1:42 PM
fhahn added inline comments to D51431: [WIP][IPSCCP] Add lattice value for != constant and propagate nonnull..
Thu, Aug 30, 12:07 PM