Displaying 20 results from an estimated 3000 matches similar to: "trunc nsw/nuw?"
2017 Jul 04
4
trunc nsw/nuw?
Hi,
> Hi Alexandre,
>
> LLVM currently doesn't have trunc nsw/nuw, no.
> Which frontend would emit such instructions? Any application in mind?
> Just asking because if no frontend could emit those, then the motivation to
> add nsw/nuw support to trunc would be very low I guess.
I think the clang frontend could use that to allow better static analysis of integer overflows
on
2017 Jul 05
2
trunc nsw/nuw?
On Wed, Jul 5, 2017 at 3:59 PM, Hal Finkel via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
>
> On 07/04/2017 01:41 AM, Dr.-Ing. Christoph Cullmann via llvm-dev wrote:
>
>> Hi,
>>
>> Hi Alexandre,
>>>
>>> LLVM currently doesn't have trunc nsw/nuw, no.
>>> Which frontend would emit such instructions? Any application in mind?
2017 Jul 05
3
trunc nsw/nuw?
On 07/05/2017 03:10 PM, Alexandre Isoard wrote:
> Ah, ok. I read it wrong. In *neither* case it is UB.
>
> Hum, can an implementation define it as UB? :-)
Nope :-)
The only case I've thought of where we could add these for C++ would be
on conversions to (most) enums (because they used signed underlying
types and the out-of-bounds mapping won't generally be one of the
allowed
2017 Jul 06
2
trunc nsw/nuw?
According to 6.3.1.3/3 of the C standard (I didn't check C++):
"3 Otherwise, the new type is signed and the value cannot be represented
in it; either the result is implementation-defined or an
implementation-defined signal is raised."
I *think* that means that IF a signal is raised then the signal raised
could be one that you can't guarantee to be able to return from
2017 Jul 07
3
trunc nsw/nuw?
Hi,
Even if there are no ways in which a *frontend* can produce nsw
truncs, it may still be useful to have if optimization passes can
usefully attach nsw to truncates (after proving the truncates don't
"overflow"). For instance in
%a = ashr i64 %v, i32 33
%t = trunc %a to i32
the trunc can be marked nsw.
However, the burden of proof here is to show that we can do some
useful
2010 Aug 18
2
[LLVMdev] Git repository to use (read-only)?
On Wednesday, August 18, 2010 11:49:28 am Anton Korobeynikov wrote:
> Hello
>
> > Is there some official git repository to clone from?
>
> Not yet, but probably there will be something pretty soon.
> Right now there are some unofficial mirrors at repo.or.cz and github
Ok, then I will try to wait until the official is ready. If I now start that
with an unofficial one, I will
2010 Aug 18
2
[LLVMdev] Git repository to use (read-only)?
Hi,
we want to use LLVM together with clang internally for preprocessing and Co.
Therefor we would like to integrate it in our buildsystem.
The nicest thing for us would be a local git repository mirror, to allow us to
easily create own branches and Co.
Is there some official git repository to clone from? I looked up the archives
and seen that creating own clones of the SVN via git svn is not
2017 Jun 05
2
Question about llvm::Value::print performance
Hi,
I want to use llvm::Value::print to output the assembly strings for llvm::Instructions
inside a rather large llvm::Module (linked module with lots of types/...).
I started with plain ::print and switched over to
http://llvm.org/docs/doxygen/html/classllvm_1_1Value.html#a04e6fc765eeb0c4c90ac5d55113db116
with a ModuleSlotTracker I pass in myself to avoid some complexity.
Still now I have
2017 Jun 05
2
Question about llvm::Value::print performance
Dear Thomas,
> Hi Christoph,
>
> maybe there is a way of caching the print outputs and output them at the
> end of the program execution?
> So, your real application do not have this kind of bottle neck.
this is a valid idea, thought the problem is: I output all things only "once" and I even
output it like:
1) load module
2) go over functions
3) output all blocks with
2010 Aug 18
0
[LLVMdev] Git repository to use (read-only)?
Hello
> Is there some official git repository to clone from?
Not yet, but probably there will be something pretty soon.
Right now there are some unofficial mirrors at repo.or.cz and github
--
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University
2017 Aug 25
9
[5.0.0 Release] Release Candidate 3 tagged
Dear testers,
5.0.0-rc3 was just tagged.
This is a release candidate in the real sense: if nothing bad comes up
in testing, this is what the release is going to look like.
Please build, test and upload binaries to the sftp (use the
/data/testers-uploads/ directory) and let me know what issues remain.
I know we're a little bit behind schedule, but hopefully we can get to
'final'
2013 Aug 15
1
[LLVMdev] Question about non-UTF-8 filesystems
Hi,
it seems that e.g. on Windows, where the filename encoding is not UTF-8, it is impossible
to use any filenames containing e.g. german umlauts or chinese characters, because
the in LLVM used encoding collides with the encoding used by the OS.
There is a open bug for this http://llvm.org/bugs/show_bug.cgi?id=10348
It seems there were patches submitted to fix it, but they were never applied as
2018 Aug 15
2
[SCEV] Why is backedge-taken count <nsw> instead of <nuw>?
Is that why we do not deduce +<nsw> from "add nsw" either?
Is that an intrinsic limitation of creating a context-invariant expressions
from a Value* or is that a limitation of our implementation (our
unification not considering the nsw flags)?
On Wed, Aug 15, 2018 at 12:39 PM Friedman, Eli <efriedma at codeaurora.org>
wrote:
> On 8/15/2018 12:21 PM, Alexandre Isoard via
2018 Aug 15
2
[SCEV] Why is backedge-taken count <nsw> instead of <nuw>?
I'm not sure I understand the poison/undef/UB distinctions.
But on this example:
define i32 @func(i1 zeroext %b, i32 %x, i32 %y) {
> entry:
> %adds = add nsw i32 %x, %y
> %addu = add nuw i32 %x, %y
> %cond = select i1 %b, i32 %adds, i32 %addu
> ret i32 %cond
> }
It is important to not propagate the nsw/nuw between the two SCEV
expressions (which unification would
2018 Aug 16
3
[SCEV] Why is backedge-taken count <nsw> instead of <nuw>?
Ok.
To go back to the original issue, would it be meaningful to add a
SCEVUMax(0, BTC) on the final BTC computed by SCEV?
So that it does not use "negative values"?
On Wed, Aug 15, 2018 at 2:40 PM Friedman, Eli <efriedma at codeaurora.org>
wrote:
> On 8/15/2018 2:27 PM, Alexandre Isoard wrote:
>
> I'm not sure I understand the poison/undef/UB distinctions.
>
2018 Aug 15
2
[SCEV] Why is backedge-taken count <nsw> instead of <nuw>?
Hello,
If I run clang on the following code:
void func(unsigned n) {
> for (unsigned long x = 1; x < n; ++x)
> dummy(x);
> }
I get the following llvm ir:
define void @func(i32 %n) {
> entry:
> %conv = zext i32 %n to i64
> %cmp5 = icmp ugt i32 %n, 1
> br i1 %cmp5, label %for.body, label %for.cond.cleanup
> for.cond.cleanup:
2017 Aug 11
2
Are SCEV normal form?
Note that there is a slight difficulty due to the fact that we "sink" the
trunc:
(zext i16 {0,+,1}<%bb> to i32) + (65536 * ({0,+,1}<nuw><%bb> /u 65536)
Here the recurrence lost it's <nuw> and got reduced to a i16 (on the left),
but not on the right.
But we can prove:
- that (zext i16 {0,+,1}<%bb> to i32) has the same 16 LSB than (i32
2018 Aug 02
2
SCEVUDiv simplification
Hello,
I noticed that our SCEVUDiv does not simplify anything when the RHS is not
a constant.
Is that because there is a potential issue with division by zero being
simplified?
For instance, would it be okay to simplify:
((%i * %n)<nuw> /u %n)
into: %i
The way I see it, if %n is 0, then that division is undefined and we can
"define it", at will, as being %i.
Would that make
2011 Aug 11
0
[LLVMdev] nsw/nuw for trunc
On Aug 11, 2011, at 7:31 AM, Florian Merz wrote:
> If we had nsw and nuw flags for truncations we'd know when to check for this
> kind of overflow and when not. The compiler likely doesn't need these flags and
> can still ignore them, for us they would be useful.
Duncan's point is that this is totally different from the semantics of
nsw/nuw on other instructions, which
2011 Aug 11
1
[LLVMdev] nsw/nuw for trunc
On Aug 11, 2011, at19:34, John McCall wrote:
> On Aug 11, 2011, at 7:31 AM, Florian Merz wrote:
> > If we had nsw and nuw flags for truncations we'd know when to check for
> > this kind of overflow and when not. The compiler likely doesn't need
> > these flags and can still ignore them, for us they would be useful.
>
> Duncan's point is that this is totally