Displaying 20 results from an estimated 2000 matches similar to: "ABI-specific Stack Pointer Register?"
2017 Apr 17
2
[RFC] Adding CPS call support
> Is there a reason you can't use the algorithm from the paper "A Correspondence between Continuation Passing Style and Static Single Assignment Form" to convert your IR to LLVM's SSA IR?
Yes, there are a few reasons.
Undoing the CPS transformation earlier in the pipeline would mean that we are using LLVM's built-in stack. The special layout and usage of the stack in
2017 Apr 17
9
[RFC] Adding CPS call support
Summary
=======
There is a need for dedicated continuation-passing style (CPS) calls in LLVM to
support functional languages. Herein I describe the problem and propose a
solution. Feedback and/or tips are greatly appreciated, as our goal is to
implement these changes so they can be merged into LLVM trunk.
Problem
=======
Implementations of functional languages like Haskell and ML (e.g., GHC
2017 Apr 19
3
[RFC] Adding CPS call support
> The semantics around inlining alone are problematic enough to warrant serious hesitation.
There are nicer ways to embed CPS call/return into LLVM; I just figured that there would not be much support for adding a new terminator because it would change a lot of code. Ideally we would have a block terminator like:
cps call ghccc @bar (.. args ..) returnsto label %retpt
Where the
2017 Apr 17
2
[RFC] Adding CPS call support
(Sorry for the 2nd email Eli, I forgot to reply-all).
> I'm not following how explicitly representing the return address of a call in the IR before isel actually solves any relevant issue. We already pass the return address implicitly as an argument to every call; you can retrieve it with llvm.returnaddress if you need it.
Unfortunately the @llvm.returnaddress intrinsic does not solve
2017 Apr 18
2
[RFC] Adding CPS call support
> Most architectures have a call instruction which does not push anything onto the stack; e.g. on ARM, the "BL" instruction saves the return address in LR. On other architectures, you can emulate this (for example, you could lower an IR "call" to LEA+JMP on x86-64).
This is similar to what I was originally thinking, since the end goal of all of this is the following
2017 Apr 14
2
TBAA falsely reporting may alias?
On Fri, Apr 14, 2017 at 6:12 AM, Hal Finkel via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
>
> On 04/14/2017 08:03 AM, Kavon Farvardin via llvm-dev wrote:
>
>> Thanks for the explanation Sanjoy!
>>
>> Another question I have is: are there are any passes that invalidate or
>> make the TBAA analysis information less precise?
>>
>
> Some
2017 Apr 14
2
TBAA falsely reporting may alias?
Thanks for the explanation Sanjoy!
Another question I have is: are there are any passes that invalidate or make the TBAA analysis information less precise?
I noticed that TBAA is only run once, early on in the pass ordering for O1 through O3. My thinking is that if a pass that duplicates code is run, the analysis info may not have data for the result of the new load/stores. A solution might be
2017 Apr 13
2
TBAA falsely reporting may alias?
Hi,
I'm trying to work with Type Based Alias Analysis (TBAA). Here's the example program I'm working with:
;;;;;;;;;;;;;;;;;;;;;;
define void @foo(i64* %a, i64* %b, i64 %x, i64 %y) {
store i64 %x, i64* %a, !tbaa !2 ; write to stack
store i64 %y, i64* %b, !tbaa !3 ; write to heap
ret void
}
!1 = !{!"root"}
!2 = !{!"stack", !1}
!3 = !{!"heap", !1}
2019 Aug 19
3
[ORC] Removing / replacing JITDylibs
Hi,
I'm working on a runtime autotuner that utilizes ORCv2 JIT (I'm closely tracking
tip-of-tree), so linking new object files and patching in the new function(s)
will happen frequently.
One of the concerns my runtime system has is the ability to do one of the
following: (1) replacement of the contents of a JITDylib with a new object file
[to provide semi-space GC-style reclaiming], (2)
2017 Oct 14
2
IR Pass Ordering Sensitivity
Hi,
I'm trying to autotune a good sequence of IR optimization passes and I seem to run into segfaults in opt (in LLVM5) with certain pass orderings.
Is this expected behavior? If so, what would be the recommended way of determining pass dependencies so that I can encode them into the tuner?
The test program can be found here: https://gist.github.com/kavon/92d153cdd54ce9b77162af3af47d4c95
2017 Oct 14
2
IR Pass Ordering Sensitivity
On Sat, Oct 14, 2017 at 11:05 AM, John Regehr via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> These are definitely LLVM bugs. It would be best to report reduced test
> cases against top of tree.
>
> We should have some automated infrastructure for finding these too...
>
> John
>
Zhendong & friends generally do that (and reported many bugs :) I
tried that myself,
2019 Sep 23
4
"Freeing" functions generated with SimpleORC for JIT use-case
Hi all,
I am using LLVM for JIT use-case and compile functions on the fly. I want
to "free" the modules after some time and reclaim any memory associated
with it. I am using the SimpleORC API
<https://llvm.org/docs/tutorial/BuildingAJIT1.html> now.
Is there an API to "free" all the memory associated with the module? I use
one "compiler" instance (think similar
2017 Oct 15
2
IR Pass Ordering Sensitivity
On Sat, Oct 14, 2017 at 10:58:17PM -0500, Kavon Farvardin via llvm-dev wrote:
> > something simpler will do, IMHO. Happy to discuss this further if
> > folks are in California next week :)
>
> Yes, I'll be in California next week, let's chat!
>
> We could make use of the autotuner I'm currently building:
>
> https://github.com/kavon/autotune
>
>
2012 Jan 04
4
[LLVMdev] generating ELF files on non-ELF platforms with MC
Hello,
We're currently working on MC-JIT, focusing on runtime generation and loading of ELF object files, even on non-ELF platforms (i.e. Windows). However, we run into a problem with MC insisting to generate COFF objects on Windows, MachO on Macs and ELF only otherwise, based on the triple.
Is there an existing method to generate ELF objects with MC on Windows, without modifying MC?
Thanks
2012 Jan 09
1
[LLVMdev] FW: generating ELF files on non-ELF platforms with MC
Ping,
Apart from Anton's concerns (which I think are manageable) and Micah's support, I received no reply on this.
Does there exist a way to tell MC to generate and ELF container for code on Windows? If not, I'm willing to submit a patch to fix this, but would like some opinions on the best direction to take here.
The proposed "llvm::TargetSpec class"
2012 Jan 09
0
[LLVMdev] generating ELF files on non-ELF platforms with MC
Hi,
> Would it be OK to add "ELF" to Triple::EnvironmentType? It seems like a
plausible choice since MachO is there. On the other hand, I'm not sure
whether it makes sense to make it mutually exclusive with the other members
of EnvironmentType (GNU, GNUEABI, EABI).
EABI and GNUEABI imply ELF. GNU in practice does not need to imply ELF, but
is used in the ARM world as "the
2015 May 21
3
[LLVMdev] Moving Private Label Prefixes from MCAsmInfo to MCObjectFileInfo
Hi,
I've been having trouble properly resolving an issue with our assembly syntax. The prefix our assembler uses for private local/global labels depends on the object file format. For ELF32 they begin with '$' and for ELF64 they begin with '.L'. The object file format depends on the ABI, but multiple ABI's are usable with the same target triple so we can't select
2015 May 13
4
[LLVMdev] Extending AsmPrinterHandler
(background) The CoreCLR expects a JIT to produce a MSIL bytecode offset to code offset mapping annotated with a few extra bits denoting if it’s prolog/epilog, or it’s a call, or if there’s operands remaining on the MSIL virtual stack in some cases. Our initial prototype has the MSIL offset stashed in the line number field. We could stash the extra bits in the column info but that’s starting to
2011 Jul 27
2
[LLVMdev] llvm-mc build failure
Dear llvm,
Recently (approximately a week ago) Clang and LLVM started to failed at
building. Assuming it was my incompetence, I cleared everything and
started witha fresh checkout (not that I changed it though). I am on
Ubuntu 10.04 LTS 64-Bit. And I configure and compile with CMake.
The error message I get at approximatley 66% is as follows:
Linking CXX executable ../../bin/llvm-mc
2012 Oct 02
2
[LLVMdev] [patch] set AssemblerDialect
currently, there is no (easy) way to set the AssemblerDialect. the
only method i am aware of is to set that via cl:opt.
this patch fixes that by adding a public function
setAssemblerDialect() to class MCAsmInfo.
Signed-off-by: Jun Koi <junkoi2004 at gmail.com>
diff --git a/include/llvm/MC/MCAsmInfo.h b/include/llvm/MC/MCAsmInfo.h
index 97aad71..cd08a7e 100644
---