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