similar to: Branch is not optimized because of right shift

Displaying 20 results from an estimated 1000 matches similar to: "Branch is not optimized because of right shift"

2020 Apr 05
2
Branch is not optimized because of right shift
Hi John, I hadn't seen alive2, amazing program, thank you! Keep up the good work. > I'm not sure that I've captured what you mean here To be more specific for everyone: - First of all, I hope it's clear that in the original (C) code, the region - 0x8 > 1000 branch should be eliminated. That is because it is inside a block that has ensured that 8 < region < 12. But
2020 Apr 05
3
Branch is not optimized because of right shift
Hi, > I think the IR in both of your examples makes things harder for the compiler than expected from the original C source. Note that both versions are from clang with -O2. The first is with version 9.0 and the second is with the trunk. > but in the branch only %0 is used. Sinking the lshr too early made the analysis harder. Yes, exactly! That's what I figured too. > The version
2020 Apr 05
2
Branch is not optimized because of right shift
> On Apr 5, 2020, at 22:20, Stefanos Baziotis <stefanos.baziotis at gmail.com> wrote: > > > Any idea about how the compiler could remove the lshr and use a add -16? > Actually, I just figured that doing this test is like solving this: > > 8 <= x/2 <= 13 > 16 <= x <= 26 > 0 <= x - 16 <= 10 => 0 <= x < 11 > The left part is know since
2020 Apr 06
2
Branch is not optimized because of right shift
Adding a nuw to the add -8 is incorrect. From the perspective of the unsigned math, -8 is treated a very large positive number. The input to the add is [8,13) and adding a large positive number to it wraps around past 0. So that is guaranteed unsigned wrap. On the other hand, a sub nuw 8 would be correct. ~Craig On Sun, Apr 5, 2020 at 3:27 PM Stefanos Baziotis via llvm-dev < llvm-dev at
2020 Apr 06
2
Branch is not optimized because of right shift
On Sun, Apr 5, 2020 at 6:34 PM Stefanos Baziotis < stefanos.baziotis at gmail.com> wrote: > Hi Craig, > > > Adding a nuw to the add -8 is incorrect. > Yeah, I didn't mean to say it was correct. It was just an observation that > with nuw the optimization was happened and I asked if someone thought it > was somehow connected. > > > From the perspective of the
2020 Sep 22
2
How to clean-up SCEVs from sext/zext/trunc ?
Hi Michael, Thanks for the reply. I've seen but have not used it. FWIW, the problem is not how to generate the runtime checks (although it'd be good if we can get it for free), but how to clean up the SCEVs. Does PSE do that ? Cheers, Stefanos Στις Δευ, 21 Σεπ 2020 στις 11:59 π.μ., ο/η Michael Kruse < llvmdev at meinersbur.de> έγραψε: > Have you looked into
2020 Mar 01
2
Commits as new contributor
Hi Hal, > Documentation updates should also be reviewed. Of course, I meant that I'll open a patch in Phabricator. :) I didn't know about code-review patch, thanks. I'll defer the update of developer policy until the other patch is committed so we can have a clearer picture. Kind regards, Stefanos Στις Κυρ, 1 Μαρ 2020 στις 6:17 μ.μ., ο/η Finkel, Hal J. <hfinkel at anl.gov>
2020 Mar 27
2
[GSoC] Prospective student for Unify ways to move code or check if code is safe to be moved
Hi Rithik, CodeMoverUtils is not aimed for only loop transformations, it can be used by any transformation which want to move code or check if code is safe to be moved. It can currently do both hoist and sink but require control flow equivalent between the original location and the intended to be moved location. I would like to keep the API decoupled from loop, so other transformation can use it.
2020 Mar 24
2
[GSoC] Prospective student for Unify ways to move code or check if code is safe to be moved
Np, good luck! :) - Stefanos Στις Τρί, 24 Μαρ 2020 στις 8:55 μ.μ., ο/η RITHIK SHARMA < rithiksh02 at gmail.com> έγραψε: > Many thanks, Stefanos! I really appreciate your help :) I heard from > Whitney. > > Best, > Rithik > > On Tue, 24 Mar 2020 at 23:08, Stefanos Baziotis < > stefanos.baziotis at gmail.com> wrote: > >> Hi Rithik, >> >> I
2020 Jul 31
2
Normalize a SCEV Expression
Indeed you're right, thanks! I need a nuw (which I have to invent, with a run-time check, since it doesn't exist in the original but anyway). Best, Stefanos Στις Παρ, 31 Ιουλ 2020 στις 12:36 μ.μ., ο/η Florian Hahn < florian_hahn at apple.com> έγραψε: > > > > On Jul 30, 2020, at 21:03, Stefanos Baziotis via llvm-dev < > llvm-dev at lists.llvm.org> wrote: >
2020 Jul 31
2
What is the "correct" way to add a print pass in the NPM ?
Hi, I'm interested in the sort of pass where you write `-passes=print<pass-name>` and it calls the `print()` function of the pass. I have seen some other passes that can invoke `-passes=print<>` but the implementation seems to be in the wrapper pass for the old pass manager. Thanks, Stefanos Baziotis -------------- next part -------------- An HTML attachment was scrubbed... URL:
2020 Oct 12
3
MemorySSA LLVM-dev meeting notes and upcoming meetings
Hello, Following up on last week's LLVM-Dev meeting where we discussed MemorySSA related topics, I created the following google doc <https://docs.google.com/document/d/1-uEEZfmRdPThZlctOq9eXlmUaSSAAi8oKxhrPY_lpjk/edit#> with some of the meeting notes and planning for future meetings. For those who participated, please feel free to add items I may have missed into the document and cc
2020 Sep 18
2
How to clean-up SCEVs from sext/zext/trunc ?
Hi everyone, I've been using SCEV Delinearization but it fails when other-than-pointer-size values are used in the subscripts. To make that clear, say that we have a target in which pointers are 64-bit for (int32_t i ...) for (int32_t j ...) a[i][j] = ... doesn't work while this: for (int64_t i ...) for (int64_t j ...) does work. I assume that the former does not work because
2020 Mar 01
2
Commits as new contributor
Thanks to both! I'll update the docs. Best, Stefanos Στις Κυρ, 1 Μαρ 2020 στις 5:24 μ.μ., ο/η Florian Hahn < florian_hahn at apple.com> έγραψε: > Hi, > > > On 1 Mar 2020, at 14:44, Stefanos Baziotis via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > > I recently was granted commit access, but I'm not really sure what is the > process. > The
2020 Mar 18
2
GSoC Opportunity
Hi Raphael, Thanks for the clarification. I note that in this case, I also think that Benson should preferably find a different project as that would probably be better for everybody. Best, Stefanos Baziotis On Wed, Mar 18, 2020, 12:24 Raphael “Teemperor” Isemann <teemperor at gmail.com> wrote: > Just to clarify my point about the “asking if there is already another > student
2020 Mar 21
2
questionabout loop rotation
hi, I had an implementation of loop-rotation that peels the loop such that each conditional is executed at least once. https://reviews.llvm.org/D22630 This helps with LICM when instructions inside a conditional is loop invariant. The patch has decent number of test cases. All the requested comments were addressed at that time. I'm happy to rebase and put the patch again. -Aditya
2020 Mar 24
2
[GSoC] Prospective student for Unify ways to move code or check if code is safe to be moved
Hi Rithik, I CC'd the 2 other mentors and hopefully you'll get answer. Sorry, but I don't know of any other way to help. :/ You may also try to contact them privately. Best, Stefanos Στις Τρί, 24 Μαρ 2020 στις 7:35 μ.μ., ο/η RITHIK SHARMA via llvm-dev < llvm-dev at lists.llvm.org> έγραψε: > Ping! > I'm bit concern about the approaching deadline next week, some
2020 Mar 09
2
GSoC - Advanced Heuristics and Machine Learning
Hello again! Previously, I introduced myself as a prospective GSoC student interested in LLVM. Per Mr. Doerfert suggestion I took a look at two other projects that he said could interest me due to my ongoing research in autotuning. The projects are: Advanced Heuristics for Ordering Compiler Optimization Passes Machine learning and compiler optimizations: using inter-procedural analysis to select
2020 Mar 18
2
GSoC Opportunity
Hi to both, > I'm not applying for GSoC but that's a hint if other students are applying to help them get started. Yes I agree, thanks for bringing up the topic. > On a more serious note, how do I know what issue can be solved in a reasonable amount of time/how do I search for one? Well, usually you don't. If you're lucky, someone will be able to provide you with some
2020 Mar 01
3
Commits as new contributor
Hi everyone, I recently was granted commit access, but I'm not really sure what is the process. The developer policy states: "You are granted *commit-after-approval* to all parts of LLVM. To get approval, submit a patch <https://llvm.org/docs/DeveloperPolicy.html#patch> to llvm-commits <http://lists.llvm.org/mailman/listinfo/llvm-commits>. When approved, you may commit it