Page MenuHomePhabricator

fhahn (Florian Hahn)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Today

fhahn updated the diff for D94232: [LoopRotate] Add PrepareForLTO stage, avoid rotating with inline cands (WIP)..

[...]

Yes, I think the only thing outstanding with respect to testing is the omnetpp_r failure. Can you confirm if that is caused by the patch or not?

And any review of the patch would be appreciated of course!

(I thought I posted this on Friday, but looks like I forgot). The omnetpp_r crash on SPEC 2017 has not been seen again in subsequent runs so this might have been a fluke. Performance on the new runs looks fine, no change on omnetpp_r.

In term of review, could you add a test case? A -prepare-for-lto flag for loop rotate for testing purposes seems reasonable to me.

Mon, Jan 18, 9:01 AM · Restricted Project
fhahn committed rG34a2c138c896: [LoopRotate] Precommit test for prepare-for-lto handling. (authored by fhahn).
[LoopRotate] Precommit test for prepare-for-lto handling.
Mon, Jan 18, 7:25 AM
fhahn abandoned D89699: [ExtVector] Make .even/.odd/.lo/.hi return vectors for single elements..

This unfortunately breaks a bunch of existing projects. I'll abandon the change for now, as the gains are probably not worth the cost of breaking backwards compatibility.

Mon, Jan 18, 6:46 AM · Restricted Project
fhahn abandoned D59050: [InterleavedAccessAnalysis] Use unordered_map to avoid tombstone insertion..

This surfaced in more fuzzier invocations, I went ahead and submitted a fix that avoids adding empty/tombstone keys when adding new interleave group members: 83aa93e99542

Mon, Jan 18, 6:09 AM · Restricted Project
fhahn committed rGe6d758de82b6: [InferAttrs] Mark some library functions as willreturn. (authored by fhahn).
[InferAttrs] Mark some library functions as willreturn.
Mon, Jan 18, 6:05 AM
fhahn closed D94684: [InferAttrs] Mark some library functions as willreturn..
Mon, Jan 18, 6:05 AM · Restricted Project
fhahn added a comment to D94779: [Clang] Ensure vector predication pragma is ignored only when vectorization width is 1..

This ensures that the Clang loop pragma vectorize_predicate([enable|disable]) is ignored
when vectorize_width(1) is also used, since that effectively disables vectorization.

Mon, Jan 18, 3:52 AM · Restricted Project
fhahn requested review of D94905: [FuzzMutate] Add mutator to modify instruction flags..
Mon, Jan 18, 3:39 AM · Restricted Project
fhahn committed rG83aa93e99542: [VectorUtils] Do not try to add indices matching tombstone/empty values. (authored by fhahn).
[VectorUtils] Do not try to add indices matching tombstone/empty values.
Mon, Jan 18, 3:20 AM
fhahn added a comment to D93529: [GVN][BasicAA] Enable clobbering in GVN..

IIUC this is similar to the handling of partial overwrites in DSE (https://github.com/llvm/llvm-project/blob/master/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp#L548)?

Mon, Jan 18, 1:52 AM · Restricted Project

Yesterday

fhahn added a comment to D94232: [LoopRotate] Add PrepareForLTO stage, avoid rotating with inline cands (WIP)..

On SPEC 2017 there is still a problem with omnetpp_r (runtime error), which I'll have a look at next, but is otherwise neutral on geomean with only minor wobbles (+1%, -0.5% at most) on individual benchmarks.

With this having a substantial impact on performance, I'm quite keen to help get this in soon, ideally before the LLVM 12 branch, so please let me know if there is anything else I can do to help.

Sounds good! I think the theory behind the change should mean it should be quite safe and the data so far seems encouraging; I can confirm similar improvements for astar on our tracking.

It would probably good to get this in well ahead of the 12.0 branch, so it has a chance to make it through various downstream perf-tracking systems.

That's great! Agreed that this could do with a little soak on main before 12 branches, which IIRC is scheduled for 26 January?

Sun, Jan 17, 1:33 PM · Restricted Project
fhahn added inline comments to D93764: [LoopUnswitch] Implement first version of partial unswitching..
Sun, Jan 17, 10:36 AM · Restricted Project
fhahn updated the diff for D93764: [LoopUnswitch] Implement first version of partial unswitching..

If a dead path in a loop is unswitched into an empty loop, I suppose the idea is that LoopDeletion will later then delete it?

Sun, Jan 17, 10:34 AM · Restricted Project
fhahn added inline comments to D93789: Add accessors for MCSubtargetInfo CPU and Feature tables.
Sun, Jan 17, 6:28 AM · Restricted Project

Sat, Jan 16

fhahn added inline comments to D94547: [lld-macho] Run ObjCContractPass during LTO.
Sat, Jan 16, 8:53 AM · Restricted Project
fhahn committed rGbca16e2fbb45: [LTO] Remove options to disable inlining, vectorization & GVNLoadPRE. (authored by fhahn).
[LTO] Remove options to disable inlining, vectorization & GVNLoadPRE.
Sat, Jan 16, 8:43 AM
fhahn closed D94783: [LTO] Remove options to disable inlining and GVNLoadPRE..
Sat, Jan 16, 8:43 AM · Restricted Project
fhahn added inline comments to D94712: Do not traverse ConstantData use-list in LookInterchange.
Sat, Jan 16, 7:24 AM · Restricted Project

Fri, Jan 15

fhahn updated the diff for D94783: [LTO] Remove options to disable inlining and GVNLoadPRE..

enable vectorization unconditionally, to be in line with the behavior in LTOBackend.cpp.

Fri, Jan 15, 9:44 AM · Restricted Project
fhahn added inline comments to D94783: [LTO] Remove options to disable inlining and GVNLoadPRE..
Fri, Jan 15, 9:42 AM · Restricted Project
fhahn added inline comments to D94547: [lld-macho] Run ObjCContractPass during LTO.
Fri, Jan 15, 9:36 AM · Restricted Project
fhahn updated the diff for D94783: [LTO] Remove options to disable inlining and GVNLoadPRE..

Agree, these should just be removed. but I also don't see any uses of disable-lto-vectorization in a test, can that and the corresponding DisableVectorization parameter be nuked as well?

Fri, Jan 15, 9:22 AM · Restricted Project
fhahn requested review of D94783: [LTO] Remove options to disable inlining and GVNLoadPRE..
Fri, Jan 15, 7:49 AM · Restricted Project
fhahn updated the diff for D94106: [Local] Treat calls that may not return as being alive (WIP)..

Happy to see this issue finally fixed :)

I think the general approach here should be more along the lines of infering WillReturn inside FuncAttrs, and then just checking the WillReturn attribute here. Especially for languages which have no forward-progress guarantee it is important that WillReturn actually gets inferred somewhere, otherwise intrinsics will be the only thing that set the attribute.

Maybe if we turn on the attributor for a few selected attributes only?

I think it would be good to approach this incrementally. So start with gradually making the behavior 'more' correct than it is at the moment, while not regressing on performance. Treating functions without side effects without mustprogress as 'alive' seems like a relatively safe thing to do as a start.

We should also improve the inference, but to make progress it might be be desirable to not predicate one on the other to start with. I realize that having good-enough inference to start with is the more principled approach and I am not sure if the desire to make progress outweighs that in the case at hand.

I like incremental improvements, but I don't think this really qualifies. What you are doing here is not making the behavior more correct while not regressing performance -- you are making it more correct while not regressing performance for languages with a forward-progress guarantee. What's likely going to happen is that this lands because it works well enough for C++, and then the remaining and technically harder part gets forgotten...

Fri, Jan 15, 6:16 AM · Restricted Project
fhahn updated the diff for D94684: [InferAttrs] Mark some library functions as willreturn..

Do not infer willreturn for __memcpy_chk.

Fri, Jan 15, 1:19 AM · Restricted Project

Thu, Jan 14

fhahn added a comment to D90328: Eliminates dead store of an exisiting value.

Compile-time: https://llvm-compile-time-tracker.com/compare.php?from=a3904cc77f181cff7355357688edfc392a236f5d&to=b5ccbbb5b1d8fc76e2291a860e4cf0a4787b77d4&stat=instructions Seems mostly fine, only outlier is kimwitu++ in NewPM-O3 configuration (k.cc has 1.25% regression).

Something I don't understand about the general approach here is why we start at the Def store and walk all uses to find a Use store to eliminate. Wouldn't it be more efficient to start at the Use store, and check the defining access? With the current approach, I think we'll only find the cases where Def is the defining access of Use, as everything else would be an indirect use. This approach should also be much easier to make more powerful (by using getClobberingMemoryAccess()) without running into compile-time issues from visiting indirect uses.

I don't remember if there was any particular reason to choose this approach to start with. I can't think of anything right now. Let me see if there are any cases that we would miss if we flip things.

Thu, Jan 14, 2:45 PM · Restricted Project
fhahn added a comment to D90328: Eliminates dead store of an exisiting value.

Compile-time: https://llvm-compile-time-tracker.com/compare.php?from=a3904cc77f181cff7355357688edfc392a236f5d&to=b5ccbbb5b1d8fc76e2291a860e4cf0a4787b77d4&stat=instructions Seems mostly fine, only outlier is kimwitu++ in NewPM-O3 configuration (k.cc has 1.25% regression).

Something I don't understand about the general approach here is why we start at the Def store and walk all uses to find a Use store to eliminate. Wouldn't it be more efficient to start at the Use store, and check the defining access? With the current approach, I think we'll only find the cases where Def is the defining access of Use, as everything else would be an indirect use. This approach should also be much easier to make more powerful (by using getClobberingMemoryAccess()) without running into compile-time issues from visiting indirect uses.

Thu, Jan 14, 2:24 PM · Restricted Project
fhahn added a comment to D94232: [LoopRotate] Add PrepareForLTO stage, avoid rotating with inline cands (WIP)..

So on SPEC 2006 this fixes astar (+9.6%) as well as shakes things up enough to "fix" h264ref (+9.0%, see D93946). Other notable changes are libquantum (+3.2%) and omnetpp (-2.8%). Geomean is +1.5%.

Thu, Jan 14, 10:35 AM · Restricted Project
fhahn added inline comments to D94633: [FunctionAttrs] Infer willreturn for functions without loops.
Thu, Jan 14, 9:50 AM · Restricted Project
fhahn requested review of D94687: [AArch64] Make target intrinsics DefaultAttrIntrinsics..
Thu, Jan 14, 7:09 AM · Restricted Project
fhahn requested review of D94684: [InferAttrs] Mark some library functions as willreturn..
Thu, Jan 14, 5:59 AM · Restricted Project
fhahn committed rGc23e34e606bf: [InferFunctionAttrs] Improve CHECK variable names (NFC). (authored by fhahn).
[InferFunctionAttrs] Improve CHECK variable names (NFC).
Thu, Jan 14, 5:54 AM
fhahn accepted D90328: Eliminates dead store of an exisiting value.

I think this looks good now. I am planning to submit the patch tomorrow or so, unless there are further comments.

Thu, Jan 14, 2:35 AM · Restricted Project
fhahn updated the diff for D90328: Eliminates dead store of an exisiting value.

Updated to skip self-reads and simplified the code a bit.

Thu, Jan 14, 2:34 AM · Restricted Project
fhahn committed rG4bb11b3eafbd: [LTO] Expose opt() in LTOBackend (NFC). (authored by fhahn).
[LTO] Expose opt() in LTOBackend (NFC).
Thu, Jan 14, 2:07 AM
fhahn closed D94486: [LTO] Expose opt() in LTOBackend (NFC)..
Thu, Jan 14, 2:07 AM · Restricted Project
fhahn added inline comments to D94487: [LTO] Use lto::backend for code generation (WIP)..
Thu, Jan 14, 12:50 AM · Restricted Project
fhahn added inline comments to D94547: [lld-macho] Run ObjCContractPass during LTO.
Thu, Jan 14, 12:49 AM · Restricted Project

Wed, Jan 13

fhahn updated the diff for D90328: Eliminates dead store of an exisiting value.

reverse ping.

I think this is almost ready, it would be great to get the last remaining comments with respect to wording & tests wrapped up.

If you won't be able to follow up on this, it would be great if you could let us know, so potentially someone else could pick it up.

Sorry, still in a busy time.

I switched the name of the function to eliminateRedundantStoresOfExisitingValues. When I reverted my changes in some of the test files, one test now fails unexpectedly. The only reason those changed was because I ran that python script to update the tests.

For the additional tests, if someone else would like to pick that up, I am more than happy to go with that. I am not as well versed with my LLVM IR as many of you are :-).

Wed, Jan 13, 2:03 PM · Restricted Project
fhahn committed rG6077d55381a6: [DSE] Add tests with stores of existing values. (authored by fhahn).
[DSE] Add tests with stores of existing values.
Wed, Jan 13, 1:57 PM
fhahn added inline comments to D94630: [LTO] Add support for existing Config::Freestanding option..
Wed, Jan 13, 1:07 PM · Restricted Project
fhahn added inline comments to D94487: [LTO] Use lto::backend for code generation (WIP)..
Wed, Jan 13, 1:05 PM · Restricted Project
fhahn requested review of D94630: [LTO] Add support for existing Config::Freestanding option..
Wed, Jan 13, 1:00 PM · Restricted Project
fhahn committed rG01c3135850d1: [LTO] Add test for freestanding LTO option. (authored by fhahn).
[LTO] Add test for freestanding LTO option.
Wed, Jan 13, 12:44 PM
fhahn committed rGb7b1e8c37a92: [X86] Add tests for rv_marker lowering. (authored by fhahn).
[X86] Add tests for rv_marker lowering.
Wed, Jan 13, 6:59 AM
fhahn added a comment to D94597: [X86] Lower calls with rv_marker attribute..

I am not too familiar with how calls are handled in the X86 backend. I would really appreciate any pointers to cases that this approach might miss.

Wed, Jan 13, 6:20 AM · Restricted Project
fhahn requested review of D94597: [X86] Lower calls with rv_marker attribute..
Wed, Jan 13, 6:11 AM · Restricted Project
fhahn committed rGada96fa62179: [LTO] Add test to ensure objc-arc-contract is executed. (authored by fhahn).
[LTO] Add test to ensure objc-arc-contract is executed.
Wed, Jan 13, 4:19 AM
fhahn added a comment to D93964: [LAA] Always compute DepId, even for uncomputable bounds..

ping :)

Wed, Jan 13, 3:06 AM · Restricted Project
fhahn added a comment to D93122: [TTI] Use shuffle cost in getInterleavedMemoryOpCost, if profitable..

ping

Wed, Jan 13, 3:05 AM · Restricted Project
fhahn added inline comments to D94486: [LTO] Expose opt() in LTOBackend (NFC)..
Wed, Jan 13, 2:54 AM · Restricted Project
fhahn updated the diff for D94486: [LTO] Expose opt() in LTOBackend (NFC)..

Rebased after f638c2eb4ee6d0a0bd0e80cd305ad93e382db8f5, which removed the anonymous namespace (it just included function definitions), thanks for the tip!

Wed, Jan 13, 2:52 AM · Restricted Project
fhahn added a comment to D94576: [LoopVectorize] Guard verifyFunction with EXPENSIVE_CHECKS macro.

We have found that the calls to verifyFunction can take up to 66% of the time spent in llvm::LoopVectorizePass::processLoop. For some source files, verifyFunction took around 10% of the total compile time.

Wed, Jan 13, 2:00 AM · Restricted Project
fhahn committed rGf638c2eb4ee6: [LTO] Replace anonymous namespace with static functions (NFC). (authored by fhahn).
[LTO] Replace anonymous namespace with static functions (NFC).
Wed, Jan 13, 1:33 AM
fhahn added a comment to D94230: [AArch64][SVE] Add SVE IR pass to coalesce ptrue instrinsic calls.

It seems there is already a pass to optimize SVE intrinsics. Is there a reason to add a another separate pass, rather than extending the existing one?

Hi @fhahn -- the reason I created a new pass here is because SVEIntrinsicOpts.cpp works on an instruction basis -- i.e. look at each SVE intrinsic call in isolation and see what can be done locally from there. On the other hand, the optimisation implemented by this pass instead requires you to look at the set of ptrue intrinsic calls in each basic block, which is not so easy to do within the existing structure of the sve-intrinsic-opts pass. I think it's probably cleaner to add a new pass to handle this, but I am open to suggestions. 😄

Wed, Jan 13, 1:31 AM · Restricted Project

Tue, Jan 12

fhahn added inline comments to D94486: [LTO] Expose opt() in LTOBackend (NFC)..
Tue, Jan 12, 12:09 PM · Restricted Project
fhahn added a comment to D94502: [FunctionAttrs] Derive willreturn for fns with readonly` & `mustprogress`..

Thanks for taking a look!

Tue, Jan 12, 12:04 PM · Restricted Project
fhahn committed rG6cd44b204c6c: [FunctionAttrs] Derive willreturn for fns with readonly` & `mustprogress`. (authored by fhahn).
[FunctionAttrs] Derive willreturn for fns with readonly` & `mustprogress`.
Tue, Jan 12, 12:03 PM
fhahn closed D94502: [FunctionAttrs] Derive willreturn for fns with readonly` & `mustprogress`..
Tue, Jan 12, 12:03 PM · Restricted Project
fhahn added inline comments to D93764: [LoopUnswitch] Implement first version of partial unswitching..
Tue, Jan 12, 11:53 AM · Restricted Project
fhahn committed rG08d4a50467ec: [FunctionAttrs] Precommit tests for willreturn inference. (authored by fhahn).
[FunctionAttrs] Precommit tests for willreturn inference.
Tue, Jan 12, 11:17 AM
fhahn updated the diff for D94502: [FunctionAttrs] Derive willreturn for fns with readonly` & `mustprogress`..

Address comments, also add NumWillReturn stats counter and Function::willReturn()/Function::setWillReturn.

Tue, Jan 12, 9:25 AM · Restricted Project
fhahn added inline comments to D94502: [FunctionAttrs] Derive willreturn for fns with readonly` & `mustprogress`..
Tue, Jan 12, 9:24 AM · Restricted Project
fhahn added inline comments to D94502: [FunctionAttrs] Derive willreturn for fns with readonly` & `mustprogress`..
Tue, Jan 12, 8:54 AM · Restricted Project
fhahn added a comment to D94487: [LTO] Use lto::backend for code generation (WIP)..

Thanks, I'll take a look hopefully today. As I just mentioned in the bug, ThinLTOCodeGenerator has the same issue - will you be migrating that as well?

Tue, Jan 12, 8:47 AM · Restricted Project
fhahn added a comment to D94125: [Attributor] Derive `willreturn` based on `mustprogress`.

The logic in general seems fine to me, but I'm not too familiar with the attributor internals, so it would be good for someone more familiar to take a look.

Tue, Jan 12, 8:40 AM · Restricted Project
fhahn requested review of D94502: [FunctionAttrs] Derive willreturn for fns with readonly` & `mustprogress`..
Tue, Jan 12, 8:40 AM · Restricted Project
fhahn added a comment to D94494: canCreateUndefOrPoison: dyn_cast -> dyn_cast_or_null.

The issue was found with attached input bbi-51646.ll If necessary it could be added as a regression test but then the question is where (i.e. should it piggyback on some other file).

Tue, Jan 12, 8:20 AM · Restricted Project
fhahn added a reviewer for D94427: [NFC][InstructionCost] Use InstructionCost in lib/Transforms/IPO/IROutliner.cpp: AndrewLitteken.
Tue, Jan 12, 5:16 AM · Restricted Project
fhahn added a reviewer for D94487: [LTO] Use lto::backend for code generation (WIP).: thegameg.
Tue, Jan 12, 4:06 AM · Restricted Project
fhahn accepted D93725: [LV] Relax assumption that LCSSA implies single entry.

LGTM, thanks!

Tue, Jan 12, 3:48 AM · Restricted Project
fhahn requested review of D94487: [LTO] Use lto::backend for code generation (WIP)..
Tue, Jan 12, 3:25 AM · Restricted Project
fhahn requested review of D94486: [LTO] Expose opt() in LTOBackend (NFC)..
Tue, Jan 12, 3:25 AM · Restricted Project
fhahn added a comment to D92282: [VPlan] Handle scalarized values in VPTransformState..

ping

Tue, Jan 12, 1:04 AM · Restricted Project

Mon, Jan 11

fhahn added inline comments to D93764: [LoopUnswitch] Implement first version of partial unswitching..
Mon, Jan 11, 2:05 PM · Restricted Project
fhahn updated the diff for D93764: [LoopUnswitch] Implement first version of partial unswitching..

Thanks! Addressed the nit and also added an option to limit the number of memory accesses to explore, to avoid excessive compile-times in degenerate cases

Mon, Jan 11, 2:00 PM · Restricted Project
fhahn updated the diff for D93764: [LoopUnswitch] Implement first version of partial unswitching..

Rebase & ping :)

Mon, Jan 11, 7:24 AM · Restricted Project
fhahn added inline comments to D94125: [Attributor] Derive `willreturn` based on `mustprogress`.
Mon, Jan 11, 7:20 AM · Restricted Project
fhahn committed rGeb0371e403a6: [VPlan] Unify value/recipe printing after VPDef transition. (authored by fhahn).
[VPlan] Unify value/recipe printing after VPDef transition.
Mon, Jan 11, 6:43 AM
fhahn committed rGa94497a34290: [VPlan] Move initial quote emission from ::print to ::dumpBasicBlock. (authored by fhahn).
[VPlan] Move initial quote emission from ::print to ::dumpBasicBlock.
Mon, Jan 11, 4:22 AM

Sun, Jan 10

fhahn added reviewers for D94367: [Clang][Driver] Add -ffinite-loops flags: rjmccall, aaron.ballman, erichkeane.

Thanks for putting up the patch!

Sun, Jan 10, 8:32 AM · Restricted Project
fhahn added a comment to D93992: [STLExtras] Use return type from operator* of the wrapped iter..

Great, thanks for taking a look and the very helpful comments!

Sun, Jan 10, 7:49 AM · Restricted Project
fhahn committed rGc701f85c4558: [STLExtras] Use return type from operator* of the wrapped iter. (authored by fhahn).
[STLExtras] Use return type from operator* of the wrapped iter.
Sun, Jan 10, 7:48 AM
fhahn closed D93992: [STLExtras] Use return type from operator* of the wrapped iter..
Sun, Jan 10, 7:48 AM · Restricted Project

Sat, Jan 9

fhahn added a comment to D93662: [SimplifyCFG] Keep !dgb metadata of moved instruction, if they match..
In D93662#2487498, @vsk wrote:

Looks good to me as-is. Thanks!

Sat, Jan 9, 11:17 AM · Restricted Project
fhahn committed rGd98fc62ae68c: [SimplifyCFG] Keep !dgb metadata of moved instruction, if they match. (authored by fhahn).
[SimplifyCFG] Keep !dgb metadata of moved instruction, if they match.
Sat, Jan 9, 11:16 AM
fhahn closed D93662: [SimplifyCFG] Keep !dgb metadata of moved instruction, if they match..
Sat, Jan 9, 11:16 AM · Restricted Project
fhahn committed rG65f578fc0e6f: [VPlan] Keep start value of VPWidenPHIRecipe as VPValue. (authored by fhahn).
[VPlan] Keep start value of VPWidenPHIRecipe as VPValue.
Sat, Jan 9, 8:38 AM
fhahn closed D93975: [VPlan] Keep start value of VPWidenPHIRecipe as VPValue..
Sat, Jan 9, 8:38 AM · Restricted Project
fhahn updated the diff for D93975: [VPlan] Keep start value of VPWidenPHIRecipe as VPValue..

rebase after parent patch landed.

Sat, Jan 9, 8:31 AM · Restricted Project

Fri, Jan 8

fhahn added a comment to D94175: [VPlan] Move reduction start value creation to widenPHIRecipe..

LGTM, with a nit.
(Seems reduction might be worth splitting widenPhiInstruction() and its own Recipe, but that's beyond the scope of this patch)
Thanks!

Fri, Jan 8, 9:53 AM · Restricted Project
fhahn committed rGc493e9216bd1: [VPlan] Move reduction start value creation to widenPHIRecipe. (authored by fhahn).
[VPlan] Move reduction start value creation to widenPHIRecipe.
Fri, Jan 8, 9:50 AM
fhahn closed D94175: [VPlan] Move reduction start value creation to widenPHIRecipe..
Fri, Jan 8, 9:50 AM · Restricted Project
fhahn accepted D94310: [NFC] Use correct ssa.copy spelling when referring to the intrinsic.

LGTM

Fri, Jan 8, 8:05 AM · Restricted Project
fhahn added a comment to D86841: [clang] Add mustprogress and llvm.loop.mustprogress attribute deduction.

I'm happy to add a patch amending this, the reason it wasn't done that way was because at the time and even now, out of icc/clang/msvc/gcc, gcc seems to be the only one that happily removed such loops in C++ (https://godbolt.org/z/W9vj99), and I didn't have a particularly strong opinion on which way we should lean at the time.

Fri, Jan 8, 7:17 AM · Restricted Project
fhahn added inline comments to D91250: Support intrinsic overloading on unnamed types.
Fri, Jan 8, 7:14 AM · Restricted Project
fhahn added a comment to D94083: [AArch64] Add +pauth archictecture option, allowing the v8.3a pointer authentication extension..

FWIW I think it would be good to have a bit more details in the description for changes such as this, like a link to the public docs for the extension.

Fri, Jan 8, 7:06 AM · Restricted Project, Restricted Project
fhahn added a comment to D93734: [LoopDeletion] Insert an early exit from dead path in loop.

I found out quickly that perhaps the hardest part of this was to update datastructures after changing the CFG in a loop... I have barely been able to build the benchmarks as it is, so I am in need of some good advice on how to update things after a loop change, for this patch to be usable. Currently I have changed things temporarily so that LI, DT, etc are recomputed after loop deletion (BTW, I found that only recomputing those analyses on master after LoopDeletion was not NFC, which surprised me... Is that a bug or expected with the aim to save compile time?)

Statistics on SPEC-17 on SystemZ:

Fri, Jan 8, 6:54 AM · Restricted Project
fhahn added a comment to D75980: [LV] Generate RT checks up-front and remove them if required. (WIP).

Sent mail to llvm-dev (https://lists.llvm.org/pipermail/llvm-dev/2021-January/147678.html), to get thoughts on the 'speculatively create IR and throw away if not needed` pattern in general

Fri, Jan 8, 5:34 AM · Restricted Project
fhahn updated the diff for D75981: [LV] Allow large RT checks, if they are a fraction of the scalar cost (WIP).

rebase on top of the recent changes.

Fri, Jan 8, 5:00 AM · Restricted Project