Page MenuHomePhabricator

junparser (JunMa)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 11 2019, 11:18 PM (171 w, 5 d)

Recent Activity

Apr 23 2022

junparser committed rGc0022b4bb12d: [InlineCost] Set LastCallToStaticBonus in ML inlining models. (authored by junparser).
[InlineCost] Set LastCallToStaticBonus in ML inlining models.
Apr 23 2022, 6:34 PM · Restricted Project, Restricted Project
junparser closed D124233: [InlineCost] Set LastCallToStaticBonus in ML inlining models..
Apr 23 2022, 6:34 PM · Restricted Project, Restricted Project

Apr 22 2022

junparser requested review of D124233: [InlineCost] Set LastCallToStaticBonus in ML inlining models..
Apr 22 2022, 12:16 AM · Restricted Project, Restricted Project

Feb 15 2022

junparser added inline comments to D117087: [C++20] [Coroutines] Implement return value optimization for get_return_object.
Feb 15 2022, 6:25 PM · Restricted Project
junparser added inline comments to D117087: [C++20] [Coroutines] Implement return value optimization for get_return_object.
Feb 15 2022, 3:49 AM · Restricted Project
junparser accepted D117087: [C++20] [Coroutines] Implement return value optimization for get_return_object.

LGTM. Thanks!

Feb 15 2022, 12:01 AM · Restricted Project

Feb 13 2022

junparser accepted D119541: [RISCV] Fix RISCVTargetInfo::initFeatureMap, add non-ISA features back after implication.

LGTM, thanks for the fix.

Feb 13 2022, 6:16 PM · Restricted Project

Feb 11 2022

junparser added a comment to D113336: [RISCV] Imply extensions in RISCVTargetInfo::initFeatureMap.

@eopXD, hi, this patch make us lost +relax and -save-restore by default, would you please fix it?

Feb 11 2022, 3:55 AM · Restricted Project, Restricted Project

Jan 11 2022

junparser accepted D116330: [Coroutines] Handle lifetime markers, bitcast and unused instruciton for symmetric transfer.

LGTM with some comments.

Jan 11 2022, 11:25 PM · Restricted Project

Jan 10 2022

junparser added a comment to D116327: [Coroutines] Enhance symmetric transfer for constant CmpInst.

This is general LGTM with some comments

Jan 10 2022, 7:59 PM · Restricted Project

Jan 5 2022

junparser committed rG80e56ad9ae90: [TTI] Return invalid cost for scalable vector in getShuffleCost (authored by junparser).
[TTI] Return invalid cost for scalable vector in getShuffleCost
Jan 5 2022, 3:00 AM
junparser closed D116362: [TTI] Support ScalableVectorType in getShuffleCost with SK_Broadcast kind.
Jan 5 2022, 2:59 AM · Restricted Project

Jan 4 2022

junparser updated the diff for D116362: [TTI] Support ScalableVectorType in getShuffleCost with SK_Broadcast kind.

address comment.

Jan 4 2022, 9:22 PM · Restricted Project

Jan 3 2022

junparser updated the diff for D116362: [TTI] Support ScalableVectorType in getShuffleCost with SK_Broadcast kind.

update testcase.

Jan 3 2022, 7:52 PM · Restricted Project
junparser updated the diff for D116362: [TTI] Support ScalableVectorType in getShuffleCost with SK_Broadcast kind.

address paul's comment.

Jan 3 2022, 7:15 PM · Restricted Project
junparser added inline comments to D116362: [TTI] Support ScalableVectorType in getShuffleCost with SK_Broadcast kind.
Jan 3 2022, 7:12 PM · Restricted Project

Dec 30 2021

junparser updated the diff for D116362: [TTI] Support ScalableVectorType in getShuffleCost with SK_Broadcast kind.

address comments. Set invalid cost for scalable vector broadcast.

Dec 30 2021, 5:07 PM · Restricted Project
junparser added a comment to D116362: [TTI] Support ScalableVectorType in getShuffleCost with SK_Broadcast kind.

This looks like it would treat the default cost of a broadcast as scalarising the first n elements from a <vscale x n x iM> vector, which doesn't sound right. Unless we are assuming that the default vscale is 1.

Yes, This patch keeps same behavior as before (release mode).

Dec 30 2021, 4:38 PM · Restricted Project
junparser added inline comments to D116362: [TTI] Support ScalableVectorType in getShuffleCost with SK_Broadcast kind.
Dec 30 2021, 4:22 PM · Restricted Project

Dec 29 2021

junparser updated the diff for D116362: [TTI] Support ScalableVectorType in getShuffleCost with SK_Broadcast kind.

Add testcase in cost model.

Dec 29 2021, 7:45 PM · Restricted Project
junparser added inline comments to D116362: [TTI] Support ScalableVectorType in getShuffleCost with SK_Broadcast kind.
Dec 29 2021, 7:39 PM · Restricted Project
junparser added a comment to D116362: [TTI] Support ScalableVectorType in getShuffleCost with SK_Broadcast kind.

It's fine to have a vectorizer test, but it would be better to have a more direct test of the cost model itself.

I think something like this can check for the crash (we could add variations to see if the cost is actually accurate - see /llvm/test/Analysis/CostModel/AArch64/sve-shuffle-broadcast.ll for an existing test model):

; RUN: opt -cost-model -analyze -mtriple=riscv64 -mattr=+m,+experimental-v -scalable-vectorization=on  < %s | FileCheck %s

define void @broadcast() {
  %zero = shufflevector <vscale x 16 x i8> undef, <vscale x 16 x i8> undef, <vscale x 16 x i32> zeroinitializer
  ret void
}
Dec 29 2021, 6:54 PM · Restricted Project

Dec 28 2021

junparser requested review of D116362: [TTI] Support ScalableVectorType in getShuffleCost with SK_Broadcast kind.
Dec 28 2021, 11:31 PM · Restricted Project

Nov 23 2021

junparser added a reverting change for rG1f9fa549841a: [Taildup] Don't tail-duplicate loop header with multiple successors as its…: rG17eb6b61de4b: Revert "[Taildup] Don't tail-duplicate loop header with multiple successors as….
Nov 23 2021, 6:27 PM
junparser added a reverting change for rGc93f93b2e3f2: Revert "Revert "Recommit "Revert "[CVP] processSwitch: Remove default case when…: rG07333810caee: Revert "Revert "Revert "Recommit "Revert "[CVP] processSwitch: Remove default….
Nov 23 2021, 6:27 PM
junparser committed rG07333810caee: Revert "Revert "Revert "Recommit "Revert "[CVP] processSwitch: Remove default… (authored by junparser).
Revert "Revert "Revert "Recommit "Revert "[CVP] processSwitch: Remove default…
Nov 23 2021, 6:27 PM
junparser committed rG17eb6b61de4b: Revert "[Taildup] Don't tail-duplicate loop header with multiple successors as… (authored by junparser).
Revert "[Taildup] Don't tail-duplicate loop header with multiple successors as…
Nov 23 2021, 6:27 PM
junparser added a reverting change for D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches: rG17eb6b61de4b: Revert "[Taildup] Don't tail-duplicate loop header with multiple successors as….
Nov 23 2021, 6:27 PM · Restricted Project
junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

As reported in https://reviews.llvm.org/rGc93f93b2e3f28997f794265089fb8138dd5b5f13, we should implement a more general way to avoid adding quadratic edges in CFGs.

Nov 23 2021, 6:26 PM · Restricted Project
junparser added a comment to rGc93f93b2e3f2: Revert "Revert "Recommit "Revert "[CVP] processSwitch: Remove default case when….

Looks a more general way should be implemented in tailduplicator to avoid adding quadratic edges in CFGs.

Nov 23 2021, 5:53 PM

Nov 1 2021

junparser accepted D111418: [GVN] Simple GVNHoist - limits.

LGTM

Nov 1 2021, 8:39 PM · Restricted Project, Restricted Project
junparser closed D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..
Nov 1 2021, 12:35 AM · Restricted Project
junparser committed rG1f9fa549841a: [Taildup] Don't tail-duplicate loop header with multiple successors as its… (authored by junparser).
[Taildup] Don't tail-duplicate loop header with multiple successors as its…
Nov 1 2021, 12:33 AM
junparser committed rGf8833ba1ed96: [TailDup] Add testcase for interpreter switch loop, NFC. (authored by junparser).
[TailDup] Add testcase for interpreter switch loop, NFC.
Nov 1 2021, 12:33 AM
junparser added a reverting change for rG3a998c06a8e9: Revert "Recommit "Revert "[CVP] processSwitch: Remove default case when switch…: rGc93f93b2e3f2: Revert "Revert "Recommit "Revert "[CVP] processSwitch: Remove default case when….
Nov 1 2021, 12:33 AM
junparser committed rGc93f93b2e3f2: Revert "Revert "Recommit "Revert "[CVP] processSwitch: Remove default case when… (authored by junparser).
Revert "Revert "Recommit "Revert "[CVP] processSwitch: Remove default case when…
Nov 1 2021, 12:33 AM
junparser closed D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.
Nov 1 2021, 12:33 AM · Restricted Project
junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

Do we have any benchmark on python, I think I can have a perf test with them before land this.

We don't have it in test-suite yet. In test-suite, we have SingleSource/Benchmarks/Misc/evalloop.c and MultiSource/Benchmarks/TSVC for computed-goto.

Nov 1 2021, 12:10 AM · Restricted Project

Oct 31 2021

junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

LGTM, let's land it first to unblock https://reviews.llvm.org/D106056. But one thing to notice, number of python's opcode is larger than 128. If this patch affects python's perf, I think we should seek another adequate default value.

Oct 31 2021, 8:17 PM · Restricted Project

Oct 28 2021

junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

Hi @lkail, since the value 128 can fix the ut, can we land this first, and then change this value if we have to. is it ok?

Oct 28 2021, 8:39 PM · Restricted Project
junparser added a reviewer for D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches: lkail.
Oct 28 2021, 8:37 PM · Restricted Project

Oct 25 2021

junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

ping

Oct 25 2021, 6:36 PM · Restricted Project

Oct 20 2021

junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

I agree we should add limitation to such pattern of CFG. If not, quadratic number of edges are added to CFG and hurt compile-time, especially when there are 1K+ cases. The setting of tail-dup-jmptable-loop-size might be related to BTB or BTAC, of which I'm not an expert. But for now, we don't want to regress protobuf's compile-time, value of 128 need @alexfh 's confirm.

Oct 20 2021, 1:48 AM · Restricted Project

Oct 12 2021

junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

@alexfh kindly ping~

Oct 12 2021, 7:51 PM · Restricted Project

Oct 11 2021

junparser added inline comments to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.
Oct 11 2021, 7:59 PM · Restricted Project
junparser updated the diff for D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

address comments.

Oct 11 2021, 7:59 PM · Restricted Project
junparser added a comment to D111418: [GVN] Simple GVNHoist - limits.

Would it better use some parameter from GVNHoist? Also I do think maybe the default value is too large.

Oct 11 2021, 3:19 AM · Restricted Project, Restricted Project
junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

@lkail @MatzeB any suggestion with the parameter value 128?

From the perf data pasted by @alexfh in https://reviews.llvm.org/D106056, the compile time regression occurs in MachineBlockPlacement when CFG becomes complex. I think we should fix the issue there, i.e., fix the O(n^2) iteration by(There are multiple such usages, listed one)

It's not only MachineBlockPlacement pass, we saw Eliminate PHI and Control flow pass also cost much more time. with the ir file i attached above, it shows

Oct 11 2021, 2:41 AM · Restricted Project

Oct 8 2021

junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

IIUC, switching this pattern off might lose some optimization commonly seen in interpreter, e.g., https://eli.thegreenplace.net/2012/07/12/computed-goto-for-efficient-dispatch-tables. Do you have any benchmark numbers?

Hi, thanks for the reminder!
I tested the change with spec cpu2017, and there was no performance change. I also tested the case in https://eli.thegreenplace.net/2012/07/12/computed-goto-for-efficient-dispatch-tables, and I add it int tesetcase as well. This patch has no effect on most of the interpreter switch loop.

However, i test the case offered by @alexfh based on D106056 and w/o this change, it show 1x performance gains without the change. The reduced case is large_loop_switch in testcase.

The root reason is that llvm optimizer usually does not change unused default case into unreachable before D106056. The interpreter switch loop also keeps this branch when transform to jumptable, The loop form become to :

//                  
//              / <---------/ / /
//          0-> 1->  2  -> 3  / /            
//              \      \  -> 4 /              
//                \      \ -> 5             
//                  \---> default

the default bb can not tail duplicate into loop header. With D106056, the unreachable default bb is removed, then taildup can help to transform switch loop into dispatch table.

Oct 8 2021, 11:39 PM · Restricted Project
junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

So this change blocks optimization from D106056, @alexfh would you like to workaround with -mllvm -tail-dup-indirect-size=4?

I found a single huge protobuf generated source that was pushed over the time limit. However, there are likely many others that will just take more time to compile wasting resources and potentially increasing build latency. Having to hunt down all of them and to sprinkle -mllvm -tail-dup-indirect-size=4 all around the build configuration files would be unfortunate.

Or let add one more parameter such as -tail-dup-jmptable-size with default value maybe 100?
any suggest?

Would that stop this particular transformation for large switch cases? Should this always be done?

Oct 8 2021, 11:34 PM · Restricted Project
junparser updated the diff for D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

Add one parameter. @alexfh could you have a try with this patch?

Oct 8 2021, 11:32 PM · Restricted Project

Sep 28 2021

junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

So this change blocks optimization from D106056, @alexfh would you like to workaround with -mllvm -tail-dup-indirect-size=4?

Sep 28 2021, 8:38 PM · Restricted Project
junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

IIUC, switching this pattern off might lose some optimization commonly seen in interpreter, e.g., https://eli.thegreenplace.net/2012/07/12/computed-goto-for-efficient-dispatch-tables. Do you have any benchmark numbers?

Sep 28 2021, 8:37 PM · Restricted Project
junparser updated the diff for D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

Add testcase diff between this change.

Sep 28 2021, 8:02 PM · Restricted Project
junparser added a comment to D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.

reduced bc file.

Sep 28 2021, 2:20 AM · Restricted Project
junparser requested review of D110613: [Taildup] Don't tail-duplicate loop header with multiple successors as its latches.
Sep 28 2021, 2:11 AM · Restricted Project

Sep 27 2021

junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

@alexfh Turns out it was caused by EarlyTailDuplicatePass, would you try with -mllvm -disable-early-taildup=true?

Sep 27 2021, 6:16 AM · Restricted Project
junparser added a reverting change for rG8ba2adcf9e54: Recommit "Revert "[CVP] processSwitch: Remove default case when switch cover…: rG3a998c06a8e9: Revert "Recommit "Revert "[CVP] processSwitch: Remove default case when switch….
Sep 27 2021, 5:47 AM
junparser committed rG3a998c06a8e9: Revert "Recommit "Revert "[CVP] processSwitch: Remove default case when switch… (authored by junparser).
Revert "Recommit "Revert "[CVP] processSwitch: Remove default case when switch…
Sep 27 2021, 5:47 AM
junparser reopened D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..
Sep 27 2021, 5:47 AM · Restricted Project
junparser added a reverting change for D106056: [CVP] processSwitch: Remove default case when switch cover all possible values.: rG3a998c06a8e9: Revert "Recommit "Revert "[CVP] processSwitch: Remove default case when switch….
Sep 27 2021, 5:47 AM · Restricted Project
junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

We'd appreciate a prompt fix or a workaround. If neither is possible, please revert the commit while working on a proper solution.

Well, it is not "common" code, switch 1000 cases. But easy fix is probably to introduce some reasonable limit when to bail out.

switch 1000 cases is not the issue, use loop induction variable as condition is. It cause LVI recursive call SolveBlockValue.

@xbolva00 I was wrong. The compiler time regression is caused by CodeGen Passes rather than CVP or LVI.

This conclusion corresponds with the profile in my earlier comment (e.g. this line: 80.96% (anonymous namespace)::MachineBlockPlacement::buildLoopChains).

Sep 27 2021, 5:44 AM · Restricted Project
junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

We'd appreciate a prompt fix or a workaround. If neither is possible, please revert the commit while working on a proper solution.

Well, it is not "common" code, switch 1000 cases. But easy fix is probably to introduce some reasonable limit when to bail out.

We'd appreciate a prompt fix or a workaround. If neither is possible, please revert the commit while working on a proper solution.

Well, it is not "common" code, switch 1000 cases. But easy fix is probably to introduce some reasonable limit when to bail out.

switch 1000 cases is not the issue, use loop induction variable as condition is. It cause LVI recursive call SolveBlockValue.

Sep 27 2021, 3:57 AM · Restricted Project
junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

I've hit this issue in Jumpthreading pass. Maybe we should add one parameter for LVI::solve

Sep 27 2021, 2:16 AM · Restricted Project
junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

We'd appreciate a prompt fix or a workaround. If neither is possible, please revert the commit while working on a proper solution.

Well, it is not "common" code, switch 1000 cases. But easy fix is probably to introduce some reasonable limit when to bail out.

Sep 27 2021, 2:14 AM · Restricted Project
junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

We'd appreciate a prompt fix or a workaround. If neither is possible, please revert the commit while working on a proper solution.

Sep 27 2021, 1:42 AM · Restricted Project

Sep 25 2021

junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

FYI, we see a ~5x increase in compile time on some of our code (mainly on some large protobuf-generated files) after rG8ba2adcf9e54b34ba8efa73ac0d81a1192e4f614. We're working on an isolated test case.

With switches with the huge number of cases?

Sep 25 2021, 7:44 PM · Restricted Project

Sep 16 2021

junparser added a comment to D109760: [GVN] Simple GVN hoist.

I believe the latest issues with gvnhoist were regressions, what about to take a look at this pass again and possibly enable (some “obviously” profitable) parts of gvnhoist again?

Did you run spec benchmarks with trunk+gvnhoist?

I did and indeed I got even better speedup, but with -O2 -mllvm -enable-gvnhoist. With -O3 there was no improvement (and maybe a regression) (due to unrolling, see thread on the mailing list).

Sep 16 2021, 12:03 AM · Restricted Project

Sep 15 2021

junparser added inline comments to D109760: [GVN] Simple GVN hoist.
Sep 15 2021, 11:52 PM · Restricted Project

Sep 14 2021

junparser added a comment to D109760: [GVN] Simple GVN hoist.

As for mcf, I guess it may casued by large register pressure due to hoist some expression from some huge successor. So simple cost model is necessary.

Sep 14 2021, 8:19 PM · Restricted Project
junparser added a comment to D109760: [GVN] Simple GVN hoist.

I believe the latest issues with gvnhoist were regressions, what about to take a look at this pass again and possibly enable (some “obviously” profitable) parts of gvnhoist again?

Did you run spec benchmarks with trunk+gvnhoist?

Sep 14 2021, 8:01 PM · Restricted Project
junparser added a comment to D109760: [GVN] Simple GVN hoist.

Thanks for your patch!

Sep 14 2021, 7:57 PM · Restricted Project
junparser added reviewers for D109760: [GVN] Simple GVN hoist: reames, SjoerdMeijer.
Sep 14 2021, 7:33 PM · Restricted Project

Sep 9 2021

junparser committed rG8ba2adcf9e54: Recommit "Revert "[CVP] processSwitch: Remove default case when switch cover… (authored by junparser).
Recommit "Revert "[CVP] processSwitch: Remove default case when switch cover…
Sep 9 2021, 1:54 AM
junparser closed D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..
Sep 9 2021, 1:53 AM · Restricted Project

Sep 8 2021

junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

@spatel ok for relanding?

Sep 8 2021, 7:26 PM · Restricted Project

Aug 30 2021

junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

Hi @junparser , thank you kindly for helping us look into this; even building and booting kernels locally! Right now, we're chasing multiple regressions (https://github.com/ClangBuiltLinux/linux/issues/1438, https://github.com/ClangBuiltLinux/linux/issues/325#issuecomment-885197956, and this) with the first currently marked a clang-13 release blocker. Unless this patch fixes a regression marked as blocking the clang-13 release, can you please extend your generosity and patience so that we have another week to sort those out and revisit this?

Aug 30 2021, 7:11 PM · Restricted Project

Aug 29 2021

junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

@nathanchance @nickdesaulniers, any update?

Aug 29 2021, 7:28 PM · Restricted Project

Aug 27 2021

junparser committed rG15b2a8e7faf6: [AArch64][SVE] Optimize ptrue predicate pattern with known sve register width. (authored by junparser).
[AArch64][SVE] Optimize ptrue predicate pattern with known sve register width.
Aug 27 2021, 5:04 AM
junparser committed rG8c4710349197: [AArch64][SVE] Add API for conversion between SVE predicate pattern and element… (authored by junparser).
[AArch64][SVE] Add API for conversion between SVE predicate pattern and element…
Aug 27 2021, 5:04 AM
junparser committed rG3f919dfe0de8: [AArch64][SVE] Use getPTrue uniformly.NFC. (authored by junparser).
[AArch64][SVE] Use getPTrue uniformly.NFC.
Aug 27 2021, 5:04 AM
junparser closed D108706: [AArch64][SVE] Optimize ptrue predicate pattern with known sve register width..
Aug 27 2021, 5:04 AM · Restricted Project
junparser closed D108705: [AArch64][SVE] Add API for conversion between SVE predicate pattern and element count. NFC.
Aug 27 2021, 5:04 AM · Restricted Project
junparser updated the diff for D108706: [AArch64][SVE] Optimize ptrue predicate pattern with known sve register width..

add testcase.

Aug 27 2021, 4:50 AM · Restricted Project

Aug 26 2021

junparser accepted D108277: [Coroutines] Mark coroutine as nounwind if all the calls outside the try-catch wouldn't throw..
Aug 26 2021, 7:13 PM
junparser added a comment to D108277: [Coroutines] Mark coroutine as nounwind if all the calls outside the try-catch wouldn't throw..

LGTM, @rjmccall @lxfind any other comments?

Aug 26 2021, 7:10 PM
junparser updated the diff for D108706: [AArch64][SVE] Optimize ptrue predicate pattern with known sve register width..

Address comment. Only deal with fixed length vector.

Aug 26 2021, 4:55 AM · Restricted Project
junparser added inline comments to D108706: [AArch64][SVE] Optimize ptrue predicate pattern with known sve register width..
Aug 26 2021, 4:21 AM · Restricted Project
junparser updated the diff for D108706: [AArch64][SVE] Optimize ptrue predicate pattern with known sve register width..

rebased.

Aug 26 2021, 1:59 AM · Restricted Project
junparser updated the diff for D108705: [AArch64][SVE] Add API for conversion between SVE predicate pattern and element count. NFC.

Address comment.

Aug 26 2021, 1:44 AM · Restricted Project

Aug 25 2021

junparser updated the diff for D108706: [AArch64][SVE] Optimize ptrue predicate pattern with known sve register width..

rebased.

Aug 25 2021, 8:16 PM · Restricted Project
junparser updated the diff for D108705: [AArch64][SVE] Add API for conversion between SVE predicate pattern and element count. NFC.

Address comment.

Aug 25 2021, 8:02 PM · Restricted Project
junparser added inline comments to D108706: [AArch64][SVE] Optimize ptrue predicate pattern with known sve register width..
Aug 25 2021, 8:00 PM · Restricted Project
junparser added inline comments to D108705: [AArch64][SVE] Add API for conversion between SVE predicate pattern and element count. NFC.
Aug 25 2021, 7:12 PM · Restricted Project
junparser requested review of D108706: [AArch64][SVE] Optimize ptrue predicate pattern with known sve register width..
Aug 25 2021, 8:12 AM · Restricted Project
junparser requested review of D108705: [AArch64][SVE] Add API for conversion between SVE predicate pattern and element count. NFC.
Aug 25 2021, 8:07 AM · Restricted Project

Aug 24 2021

junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

Thank you for all of the insight so far, I can confirm that adding -mllvm -trap-unreachable to KBUILD_{C,LD}FLAGS does resolve the issue. I have brought up this discussion with the objtool maintainers here and I will report back here depending on what they say; hopefully you do not mind holding off on merging the patch until there is a response.

Aug 24 2021, 6:20 PM · Restricted Project

Aug 23 2021

junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

The backend can, in general, create basic blocks that don't contain any instructions, and don't fall through to another block. A jump table entry can refer to such a block. I guess certain tools could be confused by this.

If that's the issue, it should be possible to work around it using "-mllvm -trap-unreachable".

Aug 23 2021, 6:16 PM · Restricted Project
junparser added a comment to D106056: [CVP] processSwitch: Remove default case when switch cover all possible values..

I do not think that is the issue here. Adding -mllvm -trap-unreachable to the kernel's build flags does not silence objtool nor allows the kernel to boot. I switched over to CONFIG_UNWINDER_FRAME_POINTER instead of CONFIG_UNWINDER_ORC so objtool should only be running checks, not doing any sort of binary modifications, and I see the same warning. If the warning is not valid, then I can bring that up to the tool's author but it seems valid, given that it is pointing to the exact function that @junparser already identified as problematic.

+ tools/objtool/objtool check --duplicate --vmlinux --no-unreachable --retpoline --uaccess vmlinux.o
vmlinux.o: warning: objtool: cfg80211_edmg_chandef_valid()+0x16e: can't find jump dest instruction at .text.cfg80211_edmg_chandef_valid+0x180
Aug 23 2021, 6:15 PM · Restricted Project

Aug 22 2021

junparser added a comment to D108277: [Coroutines] Mark coroutine as nounwind if all the calls outside the try-catch wouldn't throw..

what about allocation function?

Aug 22 2021, 6:16 PM