Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Signed NaNs in APFloat arithmetic"
2014 Aug 07
3
[LLVMdev] Signed NaNs in APFloat arithmetic
Ok, I had forgotten about sNaNs. Doesn't the same caveat apply to
0-sNaN then though or does that not signal? Does that mean we need a
separate way to handle negate in the IR? Funnily enough, historically
I believe we were using the multiplication by -1.0 because it was a
more reliable negation that 0-x (from 3.0 until 3.3 at least). Is
there a good reason why multiplication by NaN should kill
2014 Aug 07
2
[LLVMdev] Signed NaNs in APFloat arithmetic
Ok. That you for clarifying the point for me. I was primed for a
regression because this behavior changed over llvm versions and was
causing my tests to fail ;). I'm now doing bitcasting to int, xoring
with the signbit and bitcasting back.
On Thu, Aug 7, 2014 at 2:59 AM, Owen Anderson <resistor at mac.com> wrote:
> Subtraction is also not a correct implementation of negation, for
2014 Aug 08
3
[LLVMdev] Signed NaNs in APFloat arithmetic
On 7 August 2014 20:52, Keno Fischer <kfischer at college.harvard.edu> wrote:
> One more update: Since the code generated by the bitcast wasn't ideal
> and we were afraid to loose vectorization, etc., we ended up going
> with fsub -0.0, x, which for some reason unlike fsub 0.0, x, seems to
> be have appropriately at all optimization levels.
That's because "fsub 0.0,
2014 Aug 08
6
[LLVMdev] Signed NaNs in APFloat arithmetic
Is there any intention of making floating absolute and negate primitive IR
instructions?
I ask because only a few days ago I was also faced with the task of
implementing negate in my compiler, and finding no suitable IR instruction,
simply subtracted from zero. But this is wrong.
I could change my code to do the bit casting and fiddling, but I wonder:
would that be lowered appropriately on all
2014 Aug 08
2
[LLVMdev] Signed NaNs in APFloat arithmetic
FYI, I was looking at the SSE/AVX codegen here:
http://llvm.org/bugs/show_bug.cgi?id=20578
If LLVM starts caring about FP exceptions, even this won't be possible. Is
there a way of doing an IEEE-754 fneg in C/C++? Ie, there's no fneg() in
libm, so any C method we choose could cause an exception, and that's not
allowed by the IEEE definition of fneg.
On Fri, Aug 8, 2014 at 12:29 PM,
2012 Jun 24
1
[LLVMdev] APFloat::PPCDoubleDouble arithmetic
Hi all,
What changes to LLVM are needed to support arithmetic for PPCDoubleDouble?
arithmeticOK == false for PPCDoubleDouble leads e.g. to assert "Compile-time arithmetic does not support these semantics" when compiling the next function on PowerPC with clang:
double quiet_NaN()
{
return 4.94065645841246544176568792868221e-324L;
}
--
Regards,
Konstantin
2014 Feb 07
2
[LLVMdev] Weird msan problem
Yes, it would be great to get that fixed.
On Wed, Feb 5, 2014 at 4:09 PM, Evgeniy Stepanov
<eugeni.stepanov at gmail.com>wrote:
> On Thu, Feb 6, 2014 at 12:21 AM, Keno Fischer
> <kfischer at college.harvard.edu> wrote:
> > Looks like when you materialize the stores, you should check the size of
> the
> > the store and emit an appropriate amount of stores to the
2014 Feb 05
2
[LLVMdev] Weird msan problem
Looks like when you materialize the stores, you should check the size of
the the store and emit an appropriate amount of stores to the origin shadow
(or just a memset intrinsic?).
On Wed, Feb 5, 2014 at 2:13 PM, Keno Fischer
<kfischer at college.harvard.edu>wrote:
> The @entry stuff is just a gdb artifact. I've been tracking this back a
> little further, and it seems there's
2015 Apr 10
2
[LLVMdev] Intercepting dlinfo in memory sanitizer
Thanks! I'll try that.
In order to avoid starting a new thread, let me ask you the next question.
One of the shared libraries I load calls strtol and msan fails to intercept
it. Why would this be? The library seems to be otherwise implemented. One
of the potential culprits I saw is that strtol is marked as strong in libc.
Is there any workaround?
Keno
On Thu, Apr 9, 2015 at 3:00 PM, Evgeniy
2014 Feb 02
2
[LLVMdev] Weird msan problem
How is ccall() implemented? If it manually sets up a stack frame, then
it also needs to store argument shadow values in paramtls.
I don't think there is an overflow, unless you have a _lot_ of
arguments in a function call.
On Sun, Feb 2, 2014 at 9:26 AM, Keno Fischer
<kfischer at college.harvard.edu> wrote:
> Also, I was looking at the instrumented LLVM code and I noticed that the
2014 Feb 03
2
[LLVMdev] Weird msan problem
The code for ccall looks right. Sounds like you have a very small
range of instructions where an uninitialized value appear. You could
try debugging at asm level. Shadow for b should be passed at offset 0
in __msan_param_tls.
MSan could propagate shadow through arithmetic and even some logic
operations (like select). It could be that b is clean on function
entry, but then something uninitialized
2014 Jun 10
4
[LLVMdev] MachO non-external X86_64_RELOC_UNSIGNED
Thank you for the explanation. Does that mean r_symbolnum is basically
redundant in that case? Also, let me ask you how to handle the following
use case which is somewhat related. Currently in MCJIT for MachO we are
relocating all the debug sections. Eventually (as ELF does), it would be
good to avoid this. However, this means that the debugger would have to
handle relocations (as lldb currently
2015 May 23
2
[LLVMdev] Sporadic "RealOffset <= INT32_MAX && RealOffset >= INT32_MIN" failures with MCJIT on Windows
Hi Dale,
I don't think that Keno's rewrite is applicable for a bug fix release. We
have, in the last year, moved to having some dot releases for our older
releases, but these are definitely bug fix only and low risk as we don't
want to break anything new.
The release documentation is located here:
http://llvm.org/docs/HowToReleaseLLVM.html
for future reference. There's no
2014 Feb 01
2
[LLVMdev] Weird msan problem
I have verified that both TLS implementations indeed find the same area of
memory. Anything else I could look for?
On Tue, Jan 28, 2014 at 4:28 PM, Keno Fischer
<kfischer at college.harvard.edu>wrote:
> Yes, both JIT code and the native runtime are instrumented. I am under the
> impressions that the the C library should guarantee that from the way the
> relocations are
2015 May 22
2
[LLVMdev] Sporadic "RealOffset <= INT32_MAX && RealOffset >= INT32_MIN" failures with MCJIT on Windows
On Fri, May 22, 2015 at 4:14 PM, Keno Fischer <kfischer at college.harvard.edu>
wrote:
> This might be related to GOT relocations. I rewrote that part of
> RuntimeDyldELFbecause I was seeing this issue. Have you tried trunk?
>
I didn't notice that you were running 3.5 the first time I read this.
Keno's diagnosis is very likely to be correct. You should try trunk if
2014 Aug 13
2
[LLVMdev] Advice for setting debug locations
Oh, I see. Sorry I misunderstood. I'll try to come up with some
minimal IR. The assertion stems from the fact that getCompileUnitDIE()
returns null and then crashes at DWARFUnit.cpp:301. I admit I don't
know if this problem is on the parsing or the generation side.
While I come up with the IR, basically what I was doing was using a
DebugLoc with scope being a DIFile rather than a
2014 Jun 09
4
[LLVMdev] MachO non-external X86_64_RELOC_UNSIGNED
Hello everybody,
I would like some insights on the semantics of the X86_64_RELOC_UNSIGNED
relocation type. When r_extern=1, the semantics seem pretty clear:
Let x be a pointer to r_offset of appropriate size given by r_size, then
*x += addr_of_symbol(r_symbolnum)
However, when r_extern=0 the correct behavior is not clear. By analogy with
the above, I would have expected
*x +=
2014 Jul 29
2
[LLVMdev] Reminder: Please switch to MCJIT, as the old JIT will be removed soon.
Hi Keno,
Could you give a short high-level overview of the way Julia works now with
MCJIT instead the JIT:
What I gather so far...
* Compiled IR functions are emitted to a shadow module.
* Any used function is cloned into its own new module and the module is
added to MCJIT.
* Called functions or globalvars are only declared in that module.
* Modules are never removed meaning "old"
2015 Apr 09
2
[LLVMdev] Intercepting dlinfo in memory sanitizer
Hi everyone,
I ran into a false positive with memory sanitizer due to it not
intercepting dlinfo. I tried to get started on writing such an interceptor,
but dlinfo seems like an extraordinarily difficult function to intercept.
The three considerations that I would like somebody to look at are:
1) How do we get the enum values to decide what kind of pointer dlinfo is
getting. Ideally we'd
2013 Nov 21
2
[LLVMdev] Building LLVM with asan
Indeed, removing that flag works fine, the only question is why this is
added in tools/llvm-shlib/Makefile in the first place then and what to do
about it:
ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux GNU GNU/kFreeBSD))
# Don't allow unresolved symbols.
LLVMLibsOptions += -Wl,--no-undefined
endif
On Thu, Nov 21, 2013 at 11:53 AM, Alexander Potapenko <glider at