similar to: How to clean-up SCEVs from sext/zext/trunc ?

Displaying 20 results from an estimated 1000 matches similar to: "How to clean-up SCEVs from sext/zext/trunc ?"

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 Oct 03
2
Information about the number of indices in memory accesses
Michael makes a great point about aliasing here and different indexing that accesses the same element! Another note: x = A[0][2] is fundamentally different depending on the type of `A`. If e.g. A was declared: int A[10][20], there's only _one_ load. A is a (and is treated as) a linear buffer, and GEPs only pinpoint the specific position of A[0][2] in this buffer (i.e. 0*10 + 2). But if A was
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 15
3
How to get information about data dependencies?
Stefanos Baziotis via llvm-dev <llvm-dev at lists.llvm.org> writes: > Well... I tried that and it doesn't seem to be very useful > unfortunately. The C/C++ way that arrays are defined is probably why > DA is not that useful. Namely that a row can alias with another row in > 2D arrays. The theory behind DA is quite powerful if we knew that they > don't alias. Right
2020 Oct 03
2
Information about the number of indices in memory accesses
Hi Ees, SCEV Delinearization is the closest I know. But it has its problems. Well for one your expression should be SCEVable. But more importantly, SCEV Delinearization is trying to deduce something that is high-level (actually source-level) from a low-level IR in which a lot of this info has been lost. So, since there's not a 1-1 mapping from high-level code to LLVM IR, going backwards will
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 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 Jul 30
2
Normalize a SCEV Expression
Hi, I have a SCEV like this: {16,+,8}. Say that this came from a loop like: int64_t *p; for (int64_t i = 0; i < ...; ++i) p[i+2]... And assuming that I'm on a 64-bit machine. What I would like to do is normalize it like that, basically this: {2,+,1} i.e. map it to the index. Now, I tried to get the underlying element size of the pointer, then getUDivExpr(OriginalSCEV, ElementSize); But
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 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 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 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 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
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 Apr 05
2
Branch is not optimized because of right shift
Hi everyone, In a twitch chat someone redirected me to an example that is not optimized: https://godbolt.org/z/BL-4jL I included the original source code and this is after -O2. We both thought that the -8 branch could be optimized out. I added a nuw in the subtraction and it actually does it. Any thoughts on why that doesn't happen already? Best, Stefanos Baziotis -------------- next part
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