Displaying 20 results from an estimated 10000 matches similar to: "Call-stack and exception handling for Windows x64 JIT"
2018 Jan 03
0
Call-stack and exception handling for Windows x64 JIT
This is https://bugs.llvm.org/show_bug.cgi?id=24233. I don't think there's
been any movement on it for a while. I don't *think* it should be hard, but
I've never really pushed on it.
On Tue, Jan 2, 2018 at 3:57 PM, Jason via llvm-dev <llvm-dev at lists.llvm.org>
wrote:
> Hi, I use LLVM MCJIT extensively and one of the sore spots is debugging.
> We lose stack
2020 Feb 29
4
[MCJIT] messy call stack debug on x64 code in VisualStudio
Hi,
I'm using IR and MCJIT to compile a script language. I debug it with on the
fly generated .pdb files. During debugging, almost each time I step into a
function, I loose information about calling function inside the visual
studio callstack view or I have a bunch of pure addresses in the callstack
in between the current function and the calling function, for example :
2017 Oct 16
2
Clang/LLVM JIT - When to use "registerEHFrames()"
Historically? I implemented support for exceptions back in LLVM 3.3, before
LLVM had an implementation of a Windows unwinder.
Currently? As recent as LLVM 4.0, I don't think the JIT was fully capable
of handling COFF files, and LLVM wouldn't emit the correct sections (with
the COFF-formatted unwind tables) when used in ELF mode.
The prolog is known to be standard since Julia disables FPO
2020 Mar 01
2
[MCJIT] messy call stack debug on x64 code in VisualStudio
I've always just hacked support for this in to the various JITs (for
JuliaLang, in our debuginfo.cpp file), by setting the
no-frame-pointer-optim flag in the IR, then creating and populating a dummy
unwind description object in the .text section, and registering that
dynamically. Some day I hope to actually just register the .pdata/.xdata
sections with the unwinder.
PDBs are a bit different
2017 Oct 06
2
Clang/LLVM JIT - When to use "registerEHFrames()"
Hello everyone,
I was following the discussion, but I have to admit, that my skills aren't
high enough to follow you guys. For my current exception problem, I don't
have to stick around with the PECOFF format, so I used clang to don't
compile to a PECOFF, but to a ELF file. Interesting, now I'm missing the
functions:
__cxa_allocate_exception
__cxa_throw
_ZTI
I loaded the DLL
2020 Jan 27
2
Stack Usage is more in the libunwind library .
Hi All,
We recently migrated to llvm 9 from gcc -7 and found that the stack
usage is more like 5K in the below function
getInfoFromDwarfSection() @ line : 1484
<https://github.com/llvm-mirror/libunwind/blob/master/src/UnwindCursor.hpp#L1484>
With our analysis and found that "typename CFI_Parser<A>::PrologInfo
prolog" local data is taking up almost 4K space.
So we
2008 Mar 30
0
[LLVMdev] stack alignment (again)
On Mar 28, 2008, at 5:17 PM, Chuck Rose III wrote:
> I was curious about the state of stack alignment on x86. I noticed
> there are a few bugs outstanding on the issue. I recently added
> some code which had the effect of throwing an extra function
> parameter on our stack at runtime, a 4 byte pointer.
>
> Esp is now not 16-byte aligned, so instructions like unpcklps
2010 Jun 18
3
[LLVMdev] Why google-perftools fails on the JITted code?
On Jun 18, 2010, at 3:29 AM, Yuri wrote:
> Now I see that JITted code doesn't have standard prolog, on x86 each
> procedure instead begins with 'sub $0x4,%esp'.
>
> Is there an option to make JIT generate regular prologs?
Try turning off frame pointer elimination. On the llc command line, this is -disable-fp-elim
-Chris
>
> Yuri
>
2008 Mar 29
5
[LLVMdev] stack alignment (again)
Hola LLVMers,
I was curious about the state of stack alignment on x86. I noticed
there are a few bugs outstanding on the issue. I recently added some
code which had the effect of throwing an extra function parameter on our
stack at runtime, a 4 byte pointer.
Esp is now not 16-byte aligned, so instructions like unpcklps xmm1,
dword ptr [eps] cause grief. My AllocaInstr instructions are
2015 Aug 16
2
[LLVMdev] Adding a stack probe function attribute
I started to implement inlining of the stack probe function based on
Microsoft's inlined stack probes in
https://github.com/Microsoft/llvm/tree/MS.
Do we know why the stack pointer cannot be updated in a loop (which
results in ideal code)? I noticed that was commented in Microsoft's
code.
I suspect this is due to debug or unwinding information, since it is
allowed on Windows x86-32.
I
2010 Jun 18
2
[LLVMdev] Why google-perftools fails on the JITted code?
I am trying to run some code allocating a lot of memory and not
releasing it in JIT under google-perftools. Just one function 'main'
calling 'malloc'.
google-perftools fails to correctly read stack when malloc is called
from inside the JITted code, and as a result perftools report is wrong:
address of 'main' procedure appears shifted 0x3946e1d0->0x3946e1ed and
is
2010 Apr 12
1
[LLVMdev] Question. about Machinefunction pass, funtion Prolog/Epilog code, stack frame
I am new to the LLVM, and need some help with this points.
1. how can we add special code for the Prolog/Epilog for some
certain functions, this should be done with machinefunction pass, rt?
2. Basically, I want to get the function stack frame, that is the size and
the initial position.
I found
int64_t llvm::MachineFrameInfo::getObjectSize ( int *ObjectIdx* )
const[inline]
This method is
2010 Jun 18
0
[LLVMdev] Why google-perftools fails on the JITted code?
Now I see that JITted code doesn't have standard prolog, on x86 each
procedure instead begins with 'sub $0x4,%esp'.
Is there an option to make JIT generate regular prologs?
Yuri
2010 Jun 19
0
[LLVMdev] Why google-perftools fails on the JITted code?
On Sat, Jun 19, 2010 at 4:35 AM, Chris Lattner <clattner at apple.com> wrote:
>
> On Jun 18, 2010, at 3:29 AM, Yuri wrote:
>
>> Now I see that JITted code doesn't have standard prolog, on x86 each
>> procedure instead begins with 'sub $0x4,%esp'.
>>
>> Is there an option to make JIT generate regular prologs?
>
> Try turning off frame
2016 Jan 21
2
Propagation of foreign c++ exceptions (msvc, x64, llvm 3.7.1, MCJIT) through IR code
Hi all,
I have the following code:
[use llvm to generate ir_func() ]
in side the ir_func() there's a call to a native cpp function that throws
an exception.
(Just imagine changing the fibonacci example and calling a native c++ func
that throws inside the fibonacci body)
I can't seem to catch "foreign" exception or any exception using the
following pseudo code:
try {
// cast
2011 Sep 26
3
[LLVMdev] x86-64 large stack offsets
Hey guys,
I'm working on a bug for x86-64 in LLVM 2.9. Well, it's actually two issues.
The assembly generated for large stack offsets has an overflow; And, once
the overflow is fixed, the displacement is too large for GNU ld to handle
it.
void fool( int long n )
{
double w[268435600];
double z[268435600];
unsigned long i;
for ( i = 0; i < n; i++ ) {
w[i] = 1.0;
z[i] =
2015 Aug 28
6
Aligned vector spills and variably sized stack frames
I've run into a problem that I'm trying to figure out how to address and
would welcome ideas and feedback.
Today, the vectorizer will nicely vectorize loops using the widest legal
vector type for the target. On a reasonable recent machine, this will
often end up using AVX2 registers which are 32 bytes wide.
If during register allocation, we decide to spill one of these
registers, we
2004 Jul 01
1
[LLVMdev] Stack alignment problem
Hello,
it seems the Prolog/Epilog insertion does not correctly align stack for me.
Consider the PEI::calculateFrameObjectOffsets method. It only aligns the
stack if
FFI->hasCalls()
is true. The only place where
MachineFrameInfo::setHasCalls
is invoked is
PEI::saveCallerSavedRegisters
and the value 'true' is only passed when there are instructions with opcodes
equal
2011 Sep 26
0
[LLVMdev] x86-64 large stack offsets
On Sep 26, 2011, at 12:02 PM, Cameron McInally wrote:
>
> Here's one of the offending instructions produced by 2.9:
>
> movsd -2147482472(%rsp), %xmm0
>
> Fixing the displacement overflow is pretty easy. It's just a matter of changing a few variable types in LLVM from unsigned to uint64_t in the functions that calculate the stack offsets. The real trouble I'm
2011 Aug 17
2
[LLVMdev] Segmented Stacks (re-roll)
Current set of patches for my work on segmented stacks. Go / dragonegg
seems to work when using this code (I still haven't run any rigorous
tests yet).
Thanks!
(Also on https://github.com/sanjoy/LLVM/tree/segmented-stacks)
--
Sanjoy Das
http://playingwithpointers.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: