Displaying 20 results from an estimated 200 matches similar to: "Assertion fail/crash in X86FrameLowering::GetFrameIndexReference SEH"
2016 Oct 19
2
Assertion fail/crash in X86FrameLowering::GetFrameIndexReference SEH
I think r262546 introduced the assumption that allocas are used exactly
once with catchpad. It seems easy to fix, though.
On Mon, Oct 17, 2016 at 11:51 PM, Carlo Kok via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> This turned out to be related to reusing the local used in the catchpad,
> for example given the following c++ code:
>
> extern void rthrow();
>
> int
2018 Aug 20
2
Windows "0xC00001A5: An invalid exception handler routine has been detected" with LLVM win32 (i386) SEH code
Indeed, it's 32bits x86 and there's no .safeseh or anything like it,
even readobj -coff-load-config says nothing:
File: ConsoleApplication830.exe
Format: COFF-i386
Arch: i386
AddressSize: 32bit
Now I know what to look for, thanks!
On Mon, Aug 20, 2018, at 18:46, Reid Kleckner wrote:
> This is 32-bit x86, right? Sounds like the exception handler did not
> appear in the /safeseh
2013 Aug 27
0
[LLVMdev] Issue with X86FrameLowering __chkstk on Windows 8 64-bit / Visual Studio 2012
It's not a solution to the actual bug (which is, as the thread you linked
discusses, a problem with the assumption on LLVM's part that the __chkstk
function lies within 2GB of the emitted code's address space) but there is
a simple workaround: hoist all allocas to the first basic block of your
function. This allows the JIT to perform all stack allocations in a single
adjustment of the
2013 Aug 19
3
[LLVMdev] Issue with X86FrameLowering __chkstk on Windows 8 64-bit / Visual Studio 2012
Hi,
I'm using LLVM to convert expressions to native assembly, the problem
is when LLVM compiles this code:
define void @fn_0000000000000000(i8*, i8*, i8*) {
bb:
%res = alloca i32
%3 = load i32* %res
%4 = bitcast i8* %0 to i32*
%5 = load i32* %4
%6 = bitcast i8* %0 to i32*
%7 = load i32* %6
%8 = xor i32 %5, %7
store volatile i32 %8, i32* %res
%9 = load i32* %res
%10 = icmp
2018 May 29
2
getting code ranges of multiple blocks and prevent reordering?
Hi. I'm very new to LLVM.
For reasons to do with custom exception handling, we have a need to check IP/PC at runtime against code ranges. This can encompass multiple logically adjacent blocks.
How to do this?
I'm guessing:
insert a label at end of every block, takes it address, store that somewhere in our data; preferably as an offset from module or function start, but full address
2015 Sep 12
3
Optimizer issues on Windows
This got me into thinking. Indeed the problem is related to Windows exceptions, so I am not sure whether the bug reported<https://llvm.org/bugs/show_bug.cgi?id=24374> is actually fixed.
Compiling Pony code (helloworld) that includes no exceptions does work fine (with optimizations). As soon as exceptions on windows come into play, writing the object file dies with the mentioned error in
2015 Sep 12
2
Optimizer issues on Windows
… Also, it doesn’t appear that you are running on windows…
From: David Majnemer
Date: Saturday 12 September 2015 18:31
To: Sebastian Blessing
Cc: Reid Kleckner, "llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>"
Subject: Re: [llvm-dev] Optimizer issues on Windows
$ ~/llvm/Debug+Asserts/bin/llc try.ll
$ echo $?
0
On Sat, Sep 12, 2015 at 6:39 AM, Sebastian Blessing
2017 Apr 27
4
-msave-args backend support for x86_64
ola,
ive been looking at adding support for an -msave-args option for
use on x86_64. the short explanation of it is that it makes x86_64
function prologues store their register arguments on the stack. the
purpose of this is to make the arguments trivially accessible for
things like stack traces with arguments.
as per
https://blogs.oracle.com/sherrym/entry/obtaining_function_arguments_on_amd64,
2013 Dec 11
0
[LLVMdev] Switching to the new MingW ABI
Maybe we should also change the stack probing code. I think ___chkstk_ms
is used since gcc 4.6. It simplifies the prologue generation code a bit.
Regards,
Kai
On 10.12.2013 02:18, Rafael Espíndola wrote:
> Mingw switched abis with the release of gcc 4.7
> (http://gcc.gnu.org/gcc-4.7/changes.html). The main change is that now
> mingw (like msvc) given thiscall calling convention to
2018 Mar 20
2
lld/lto/win32 crash on DIE code
Op 16-3-2018 om 20:16 schreef Evgeny Leviant:
> Hello Carlo,
>
> I tried your reproducer and faced different problem from one you described
> (I'm using MacOS Sierra and lld built from trunk on Mar, 15). The crash happens
> when SelectionDAGBuilder::lowerInvokable tries to access EH info of this function:
>
>
2012 Mar 08
2
[LLVMdev] A question about DBG_VALUE and Frame Index
Hi,
I have a case that is causing me grief in the form of an assert. The prolog
Epilog inserter tries to remove Frame Index references. I have a DBG_VALUE
instruction that looks like this (alongwith the Frame Index). This is for
the Hexagon backend.
**************************
fi#2: size=4, align=4, at location [SP-84]
DBG_VALUE <fi#2>, 0, !"fooBar"; line no:299
2011 Oct 10
2
[LLVMdev] Expected behavior of eliminateFrameIndex() on dbg_value machine instructions
I'm investigating a bug associated with debug information that manifests
itself in the XCore backend (PR11105). I'd like to understand what the
expected behavior of eliminateFrameIndex() is when it is called on a
dbg_value machine instruction.
Currently the XCore target replaces the frame index with the frame
register and sets the next operand to the byte offset from the frame
2012 Apr 14
2
[LLVMdev] RFC: ErLLVM - An LLVM backend for Erlang
Hi,
We 've been working on an LLVM backend for High Performance Erlang (HiPE) [1],
the native code compiler of Erlang/OTP [2]. ErLLVM [3] targets the X86 and AMD64
architectures for now but there is some ongoing work from a team on the Uppsala
University to also support ARM. In our implementation, we have paid special
attention on retaining ABI-compatibility with the Erlang Runtime System in
2019 Jul 26
2
Stackmap offset computation on AArch64
Hi all,
I am trying to implement statepoints for the AArch64 target and I’m running into the issue where the following bitcode:
define i32 addrspace(1)* @test(i32 addrspace(1)* %ptr) gc "statepoint-example" {
entry:
call token (i64, i32, i1 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_i1f(i64 0, i32 0, i1 ()* @foo, i32 0, i32 0, i32 0, i32 0, i32 addrspace(1)* %ptr)
ret
2019 Jun 25
3
Potential missed optimisation with SEH funclets
I’ve been experimenting with SEH handling in LLVM, and it seems like the unwind funclets generated by LLVM are much larger than those generated by Microsoft’s CL compiler.
I used the following code as a test:
void test() {
MyClass x;
externalFunction();
}
Compiling with CL, the unwind funclet that destroys ‘x’ is just two lines of asm:
lea rcx, QWORD PTR x$[rdx]
jmp ??1MyClass@@QEAA at XZ
2012 Apr 24
0
[LLVMdev] RFC: ErLLVM - An LLVM backend for Erlang
Hi,
Following Chris' advice, I will rebase the patches and break them in 3 distinct
emails (one at a time) in order to be easier for a reviewer to
approve/comments. Please note that the three patches while being code-wise
independent, they 're strongly-connected *semantically*, meaning that including
just a subset of these patches to LLVM's code base is quite weak if the others
are
2011 Jul 08
2
[LLVMdev] Best location in code generation for insertion of instrumentation to measure stack depth?
Hi list,
I am trying to implement the technique outlined in the following paper:
http://www.cs.umd.edu/~mwh/papers/martin10ownership.html in LLVM. My
approach so far involves the use of an IR level transform (via
runOnFunction) to identify memory loads and stores. One thing I need to do
(I am pretty sure I need to do it at least) is automatically mark each stack
frame as "owned" by the
2013 Mar 21
2
[LLVMdev] [cfe-dev] Handling SRet on Windows x86
On Wed, Mar 20, 2013 at 5:21 PM, Timur Iskhodzhanov <timurrrr at google.com>wrote:
> 2013/3/20 Timur Iskhodzhanov <timurrrr at google.com>:
> > Anton,
> >
> > [+Eric, Nick,
> > the e-mail thread context has been broken a few times, so you should
> > probably look at the llvmdev archives.
> > It all starts here:
> >
2013 Dec 10
10
[LLVMdev] Switching to the new MingW ABI
Mingw switched abis with the release of gcc 4.7
(http://gcc.gnu.org/gcc-4.7/changes.html). The main change is that now
mingw (like msvc) given thiscall calling convention to methods by
default.
I think the last bug blocking us to support the new abi has just been
fixed. The question now is how to switch.
The attached patches simply switch llvm and clang to the new ABI. This
is similar to what
2011 Oct 11
1
[LLVMdev] Expected behavior of eliminateFrameIndex() on dbg_value machine instructions
On 10/10/11 19:19, Jakob Stoklund Olesen wrote:
> On Oct 10, 2011, at 10:26 AM, Richard Osborne wrote:
>> I'm investigating a bug associated with debug information that manifests
>> itself in the XCore backend (PR11105). I'd like to understand what the
>> expected behavior of eliminateFrameIndex() is when it is called on a
>> dbg_value machine instruction.
>