similar to: Call-stack and exception handling for Windows x64 JIT

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: