Displaying 20 results from an estimated 600 matches similar to: "[LLVMdev] MachO non-external X86_64_RELOC_UNSIGNED"
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
2017 May 17
4
Which pass should be propagating memory copies
Keno,
Perhaps you can view the problem to be the memcpys themselves,
We humans can look at the memcpys and see loads and stores
but to almost all optimizer passes they aren’t what it is looking for,
They instead see function calls which they mostly don’t touch,
If these memcpys were inlined into plain old loads and stores
The redundant loads and stores should be deleted by existing opts
2016 Dec 07
2
Offset too large on scattered relocations
CCing Nick Kledzik as I posed this question on IRC and Tim Northover
suggested you as a good resource for this.
I came across an error due to a scattered relocation offset being larger
than 2**24 and I was hoping to find more information on scattered
relocations. These are MachO specific, and Ive not been able to find any
documentation on them outside of source code.
I have a couple of immediate
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
2017 May 17
2
Which pass should be propagating memory copies
Keno,
Hmmm, seems like you are saying “copy-in-copy-out” argument semantics are required by the language,
Otherwise you would be using “by-reference" argument semantics,
And that CICO is easiest for you to represent with memcpy.
Usually there are some very subtle issues with CICO and the memory model,
Typically the original object isn’t supposed to be modified until the function
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
2015 Jan 13
2
[LLVMdev] MCJIT handling of linkonce_odr
Hi Keno,
The part that scares me a bit is
> and then adjust the other methods to not
> bail out two quickly when encountering a weak symbol.
I would very much appreciate if you could implement this; I don't have
enough knowledge of the MCJIT nor llvm CodeGen internals... I will
happily try it out and provide you with feedback, though! :-)
Thank you *so* much for your fast reaction!
2012 May 15
2
[LLVMdev] llvm-config Regression fix (Bug 11886)
Ok, I attached it to the bug. For reference, here's what I'm using on unix
as a workaround as long as this is not fixed:
llvm-config --libfiles | xargs -n 1 -I {} sh -c 'test -f {} && echo {}'
On Tue, May 15, 2012 at 1:07 AM, Albert Graef <Dr.Graef at t-online.de> wrote:
> On 05/13/2012 02:46 AM, Keno Fischer wrote:
> > Currently, there's a regression
2012 May 13
3
[LLVMdev] llvm-config Regression fix (Bug 11886)
Currently, there's a regression in llvm-config in both the 3.1 Release
branch and trunk (http://llvm.org/bugs/show_bug.cgi?id=11886). The attached
patch fixes that. It would be great if this could be reviewed and still
integrated into 3.1.
Thanks,
Keno
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
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 Aug 07
2
[LLVMdev] Signed NaNs in APFloat arithmetic
In r187314, APFloat multiplication by with NaNs was made to always
yield a positive NaN. I am wondering whether that was the correct
decision. It is of course true that the result of a multiplication is
undefined in IEEE, however, we were using multiplication by -1.0 to
implement IEEE negate, which is defined to preserve the sign bit.
r210428 made 0-NaN have IEEE negate behavior, which is good
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 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"
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 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
2017 May 16
4
Which pass should be propagating memory copies
Consider the following IR example:
define void @simple([4 x double] *%ptr, i64 %idx) {
%stack = alloca [4 x double]
%ptri8 = bitcast [4 x double] *%ptr to i8*
%stacki8 = bitcast [4 x double] *%stack to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8 *%stacki8, i8 *%ptri8, i32 32,
i32 0, i1 0)
%dataptr = getelementptr inbounds [4 x double], [4 x double] *%ptr, i32
0, i64 %idx
2016 Feb 05
2
MCJit Runtine Performance
Hi Keno,
I am talking about runtime. The performance of the generated machine
code. Not the time it takes to lower the IR to machine code.
We typically only JIT once (taking a few secs) and then run the
generated machine code for hours. So the JIT time (IR -> machine code)
doesn't impact us.
Cheers
Morten
On 05/02/16 15:58, Keno Fischer wrote:
> Actually, reading over all of this
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
2017 Jun 20
2
CloneFunctionInto produces invalid debug info
I was just going to say: With well-formed debug info it should create a deep copy up until the DISubprogram, but no further. But because the DISubprogram linked to the Function is missing the special handling of the DISubprogram (that would prohibit cloning the DICompileUnit is side-stepped).
But then I remembered the discussion we had in
2017 Jun 19
2
CloneFunctionInto produces invalid debug info
- old Keno
+current Keno
> On Jun 19, 2017, at 2:59 PM, Adrian Prantl <aprantl at apple.com> wrote:
>
> In your example the instructions in the cloned function have debug locations belonging to a different function, and the function itself is missing a DISubprogram metadata attachment.
>
>> (lldb) p OldFunc->dump()
>>
>> ; Function Attrs: nounwind optsize