Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] making trampolines more portable"
2009 Jun 17
2
[LLVMdev] making trampolines more portable
Eli Friedman wrote:
> Also, for lack of an intrinsic, there's a relatively easy workaround:
> you can declare a global containing the correct size, then link in a
> small target-specific .bc with the definition right before code
> generation.
So why can't LLVM provide that global? I don't care whether it's a
global, intrinsic, or whatever. If I have to provide
2009 Jun 14
1
[LLVMdev] making trampolines more portable
I'm not sure whether there are any other cases where using LLVM requires
knowledge of the target architecture, but needing it for trampolines is
worrying me. I'm putting together things where the program that's
generating the LLVM intermediate code doesn't have any way to know what
the target architecture will be.
Right now I'm using alloca to get a block that is expected
2009 Jun 24
0
[LLVMdev] making trampolines more portable
Eli Friedman wrote:
> I didn't say we wouldn't accept a patch. It's just that up until now
> nobody has particularly cared because trampolines aren't used very
> much.
Fair enough. If I get to the point where I understand how to implement it
cleanly, I'll submit a patch.
Best regards,
Eric
2020 Mar 03
4
[RFC] Cheaper indirect calls via trampolines
Taking the address of a function inhibits optimisations for that function.
Essentially any ABI changes are unavailable if we can't adjust the call
site to match. The case of interest here is when a given function is called
directly and indirectly, and we don't want the latter to impose a cost on
the former.
One approach to avoid the ABI constraint cost is to extract/outline the
body of an
2019 May 09
3
Can I use the JIT interface to create trampolines? (For functions and global values)
Dear LLVM-Mailing list (again),
I still have another beginners question in my mind - thank you for your patience.
Again I was playing around, but this time with llvm::Function. In an older question I learned, that I can replace a llvm::Function directly with an address.
llvm::Function *function = mainModue->getFunction("puts");
function->replaceAllUsesWith(
2011 Aug 31
0
[LLVMdev] [PATCH] Split init.trampoline into init.trampoline & adjust.trampoline
Hi Sanjoy, the first and last patches look good (except that you didn't add any
tests for the auto-upgrade functionality). Comments on the other two below.
> Attached patches split init.trampoline into adjust.trampoline and
> init.trampoline, like in gcc.
>
> As mentioned in the previous mail, I've not made a documentation
> patch, since I'm not sure about what the
2011 Aug 25
0
[LLVMdev] [RFC] Splitting init.trampoline into init.trampoline and adjust.trampoline
Hi Sanjoy,
> Attached set of patches splits llvm.init.trampoline into an "init"
> phase and an "adjust" phase, as discussed on the "Go on dragonegg"
> thread.
thanks for doing this. The patches look good, though the decomposition into
individual patches is not that great (since things won't always work, in fact
not even compile I think, with not all
2011 Sep 03
2
[LLVMdev] [PATCH] Split init.trampoline into init.trampoline & adjust.trampoline
Hi!
Thank you for the detailed review. I've attached a new set of patches.
--
Sanjoy Das
http://playingwithpointers.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-New-trampoline-intrinsics-for-LLVM.patch
Type: text/x-diff
Size: 16783 bytes
Desc: not available
URL:
2011 Aug 29
3
[LLVMdev] [PATCH] Split init.trampoline into init.trampoline & adjust.trampoline
Hi!
Attached patches split init.trampoline into adjust.trampoline and
init.trampoline, like in gcc.
As mentioned in the previous mail, I've not made a documentation
patch, since I'm not sure about what the documented semantics of
llvm.adjust.trampoline should be.
Thanks!
--
Sanjoy Das
http://playingwithpointers.com
-------------- next part --------------
A non-text attachment was
2009 Apr 01
3
questions about bug 5535
AFAICs Simo's patch for bug 5535 was only applied to the 3.3 series.
Does the closing comment in https://bugzilla.samba.org/show_bug.cgi?id=5535
mean that the inconsistencies about RID calculation won't be addressed
in the 3.0 and 3.2 series?
Does the fact that 3.3.2 always uses sambaNextRid mean that algorithmic
RID allocation is doomed to obsolescence?
Regards,
Thierry
2011 Feb 23
1
[LLVMdev] LLVM ExecutionEngine/JIT trampoline question
I understand that we need to push the address to a register then branch
using the register. But i am asking why there is a trampoline there such
that a call to foo is first branched to an snippet and the snippet branches
to the X86CompilationCallback. is this snippet necessary ?
Thanks
Xin
On Tue, Feb 22, 2011 at 12:39 PM, Reid Kleckner <reid.kleckner at gmail.com>wrote:
> The
2018 Sep 22
3
Quick question: How to BuildMI mov64mi32 arbitrary MMB address to memory
Dear Mr. Northover,
Thank you for the quick reply. You are correct about the address-mode
operands :) . I guess an important detail left out was that the basic block
(call it A) that wants to calculate the address of the target stationary
trampoline basic block (call it B) will be moved around in memory during
run-time. Our earlier solution, before the feature was implemented to move
around (A)
2011 Feb 22
0
[LLVMdev] LLVM ExecutionEngine/JIT trampoline question
The address of the callee may be more than 2 GB away in memory, which
cannot be encoded as an immediate offset in the call instruction. So,
the value is first materialized with a mov instruction which can
encode the immediate and then jumped to through a register.
Reid
On Tue, Feb 22, 2011 at 12:03 PM, Xin Tong Utoronto <x.tong at utoronto.ca> wrote:
> I have a question on the LLVM JIT
2006 Jan 28
2
pgadmin3
Anyone been able to get pgadmin3 installed on CentOS-4 ?
The WxGTK2 stuff makes it impossible for me to get installed from
RPM/SRPM from their site and likewise, couldn't rebuild from Fedora
SRPMS either.
I figure between Jim and Owen and ???, somebody might have succeeded
where I would be doomed. I can get around with phppgadmin but pgadmin3
is pretty cool.
Thanks
Craig
2011 Feb 22
2
[LLVMdev] LLVM ExecutionEngine/JIT trampoline question
I have a question on the LLVM JIT
I did some brief memory reading one day and I found that a call to a
non-library function is resolved by the X86CompilationCallback, but the
X86CompilationCallback is reached through a trampoline. why can not the
generated code jump to the X86CompilationCallback function directly ?
0x2b0a6a4d103b: mov $0x2b0a6a561010,%rax
0x2b0a6a4d1045:
2007 Feb 27
8
Using a subversion repository to spec in a rails app
Is it a bad practice to use a subversion repository to the trunk of
rspec and rspec_on_rails? Or rather, is it doomed to fail, since my
gem will always be out of date?
I know I can''t use spec, installed from gem,s if I have the latest
revision of rspec and rspec_on_rails checked into my plugins
directory. But I should still be able to use it with the --drb
option, correct?
2009 Aug 17
2
S4: inheritance of validity methods?
Dear Developers,
In current implementation of validity method, objects are first coerced to
superclass (slots are striped). Thus, it is not possible to write validity
method which would perform some checks on children slots.
Say, I want to check if number of slots in a class is equal to "n":
setClass("A", representation(a="numeric", n="integer"),
2011 Aug 18
0
[LLVMdev] [PATCH] Go on dragonegg
Hi Sanjoy,
> Attached patches change how dragonegg lowers trampolines (for
> compatibility with Go).
I think the right approach is to add an llvm.adjust.trampoline intrinsic
to LLVM (and change llvm.init.trampoline to not return a result). Then the
dragonegg trampoline code will become trivial, and the Go problem will just
Go away :) In fact this was how I first did it: two intrinsics,
2008 Nov 01
0
[LLVMdev] nested function's static link gets clobbered
Hi,
> I'm parallelizing loops to be called by pthread. The thread body that I pass
> to pthread_create looks like
>
> define i8* @loop1({ i32*, i32* }* nest %parent_frame, i8* %arg)
> parent_frame is pointer to shared variables in original function
>
> 0x00007f0de11c41f0: mov (%r10),%rax
> 0x00007f0de11c41f3: cmpl $0x63,(%rax)
> 0x00007f0de11c41f6:
2020 Jul 25
0
[klibc:master] arch: Explicitly disable or enable executable stacks
Commit-ID: 27ad55131385821dfe85b0320f4d6ba8861ab7e5
Gitweb: http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=27ad55131385821dfe85b0320f4d6ba8861ab7e5
Author: Ben Hutchings <ben at decadent.org.uk>
AuthorDate: Wed, 29 Apr 2020 22:56:59 +0100
Committer: Ben Hutchings <ben at decadent.org.uk>
CommitDate: Sat, 25 Jul 2020 17:33:29 +0100
[klibc] arch: Explicitly disable