Displaying 20 results from an estimated 30000 matches similar to: "[LLVMdev] exception handling broken on x86-64?"
2008 Feb 09
2
[LLVMdev] exception handling broken on x86-64?
Hello, Thomas
> > I'd suggest to start with filling necessary bits in the
> > X86RegisterInfo.cpp. This includes frame moves information and
> > description of stack layout.
> I looked at X86RegisterInfo.cpp, but I think that it already supports
> x86-64. At least there were no obvious places were the code would only
> work for 32bit mode.
Right. See my last e-mail
2008 Feb 09
1
[LLVMdev] exception handling broken on x86-64?
Hello, Thomas
> The problem apparently is the catch part.
Catching is done by gcc unwinding runtime. Which is, in your case
(--disable-shared), compiled by llvm and thus is definitely broken. What
if you link the llvm-generated .S file with native g++ ?
> writes data in section ".eh_frame", which sounds suspiciously like
> exception handling info, which is not written by llvm.
2008 Mar 21
0
[LLVMdev] exception handling broken on x86-64?
Hello, Robert
> I had hoped this would work --- and if I use llvm-g++ to compile
> exceptiontest.cpp to native code it does. But it looks like the JIT
> is producing stack frames that the C++ runtime doesn't like.
Yes, surely. Emission of frames 'on fly' won't automatically make them
visible for the unwinding runtime. JIT currently doesn't register these
frames
2008 Feb 09
2
[LLVMdev] exception handling broken on x86-64?
Dale,
> Works for me on x86-64 Darwin, fwiw.
That looks pretty strange. Ok, it can work for small testcases, but will
surely fail when you try to use for something more real. Currently it at
least lacks information about frame moves. So, every invoke, which needs
to restore call-clobbered registers during unwinding will be broken.
Does Shootout-C++/except work for you? And stuff from llvm
2008 Feb 11
2
[LLVMdev] exception handling broken on x86-64?
Hello Evan and Dale,
> Shootout-C++/except works for me. Anton suggests there may be an
> issue with the unwinding libraries and he may be right, I'll look at
> it with you tomorrow.
Yes. Please be sure, that you're linking with system libgcc.{so,dylib},
not with llvm-compiled one.
--
WBR, Anton Korobeynikov
2008 Mar 15
1
[LLVMdev] exception handling broken on x86-64?
Did anything ever come of the work on exception handling for x86_64?
I'm having problems with exceptions on linux x86_64. Today, on x86_64
with a recently updated working copy of llvm, I tried calling a JITted
function that calls an external function that throws:
thrower.cpp: (which gets compiled into a dynamic library)
extern "C"
void throwexception()
{
throw 5;
}
My
2008 Feb 09
0
[LLVMdev] exception handling broken on x86-64?
On Feb 9, 2008, at 6:53 AM, Thomas Neumann wrote:
> Hi,
>
> when building the second release candidate of llvm 2.2 I noticed that
> exception handling seems to be broken on Linux x86-64. The exception
> is
> thrown but never caught.
> This can be seen by this trivial example:
>
> #include <iostream>
> using namespace std;
> class A { };
> int main()
2008 Feb 09
0
[LLVMdev] exception handling broken on x86-64?
On Feb 9, 2008, at 2:48 PM, Anton Korobeynikov wrote:
>> After comparing the generated assembler code with native gcc code I
>> think the generated code is fine, just the exception handler info in
>> the non-code sections is broken/missing.
> It seems, that EH dwarf information emission is disabled in
> X86TargetAsmInfo.cpp. Remove the is64Bit() condition near
>
2008 Feb 11
1
[LLVMdev] exception handling broken on x86-64?
Where we are on the subject... Are we sure EH is done for x86?
These two tests have never worked on Mac OS X / x86:
SPEC/CINT2006/471.omnetpp
Shootout-C++/except
Evan
On Feb 9, 2008, at 2:57 PM, Dale Johannesen wrote:
>
> On Feb 9, 2008, at 2:48 PM, Anton Korobeynikov wrote:
>>> After comparing the generated assembler code with native gcc code I
>>> think the generated
2008 Feb 09
2
[LLVMdev] exception handling broken on x86-64?
Hi,
when building the second release candidate of llvm 2.2 I noticed that
exception handling seems to be broken on Linux x86-64. The exception is
thrown but never caught.
This can be seen by this trivial example:
#include <iostream>
using namespace std;
class A { };
int main()
{
cout << "A" << endl;
try {
cout << "B" << endl;
2008 Feb 09
0
[LLVMdev] exception handling broken on x86-64?
On Feb 9, 2008, at 11:20 AM, Anton Korobeynikov wrote:
> Dale,
>
>> Works for me on x86-64 Darwin, fwiw.
> That looks pretty strange. Ok, it can work for small testcases, but
> will
> surely fail when you try to use for something more real. Currently
> it at
> least lacks information about frame moves. So, every invoke, which
> needs
> to restore
2008 Mar 16
1
[LLVMdev] exception handling broken on x86-64?
On Mar 16, 2008, at 5:07 AM, Duncan Sands wrote:
>> Did anything ever come of the work on exception handling for x86_64?
>>
>> I'm having problems with exceptions on linux x86_64.
>
> I'm fairly sure that exception handling doesn't currently work on
> x86-64 linux (it may work with darwin - not sure). I don't know
> what it would take to get it to
2010 Apr 22
0
[LLVMdev] Books/docs on exception handling
Hi Trevor,
DWARF exception handling is an amalgam of several different documents and code tables, which all conspire to give us exception handling. :-) The documents you should read are:
* Exception Handling Tables (http://www.codesourcery.com/public/cxx-abi/exceptions.pdf)
This explains in detail what the table in the "__TEXT,__gcc_except_tab" section is all about.
* DWARF
2010 Apr 21
3
[LLVMdev] Books/docs on exception handling
Hi,
I'm trying to learn all that I can about exception handling from the
compiler's point of view. Although much has been written about
compiler theory in general -- parsing, code generation, you name it --
I can find almost nothing on the specific problem of exception
handling support. In fact, the most informative document I've been
able to find so far is "Bill's
2008 Mar 16
0
[LLVMdev] exception handling broken on x86-64?
> Did anything ever come of the work on exception handling for x86_64?
>
> I'm having problems with exceptions on linux x86_64.
I'm fairly sure that exception handling doesn't currently work on
x86-64 linux (it may work with darwin - not sure). I don't know
what it would take to get it to work.
Ciao,
Duncan.
2007 Jun 24
0
[LLVMdev] alloca on Win32
Hi
Thanks for the info, it led to the source of the error I was having.
I was using llvm-gcc binaries (built with mingw I guess) to compile a .c
file that is my language runtime, llvm-link'ing that with my frontend's .ll,
and using an vcpp-built lli to run the resulting bytecode. This caused the
special case in X86RegisterInfo::emitPrologue for "main" to try to align the
stack
2010 Aug 03
3
[LLVMdev] Purpose of PROLOG_LABEL in function prologue?
I've been building/dumping some x86_64 code and I've noticed that each of the routines has 3 temporary symbols, à la:
_main:
pushq %rbp
Ltmp18:
movq %rsp, %rbp
Ltmp19:
subq $320, %rsp
Ltmp20:
movl %ecx, -276(%rbp)
I've tracked them back to emitPrologue in X86RegisterInfo.cpp. I'm wonder what's their purpose?
They're filling up my symbol table...
Cameron Esfahani
2007 Aug 13
0
[LLVMdev] Tail call optimization deeds
Hi Arnold and Anton,
Sorry I have been ignoring your emails on this topic. It's an
important task and I really need sometime to think about it (and talk
to Chris about it!) But this has been an especially hectic week. I am
also going to vacation soon so I am not sure when I would get around
to it.
If Chris has time, I am sure he has lots to say on this topic. :-)
Otherwise, please
2007 Aug 11
1
[LLVMdev] Tail call optimization deeds
Okay so i implemented an(other :) initial version for X86-32 backend,
this time based on TOT:
It is not very generic at the moment. Only functions with
callingconv::fastcc and the tail call attribute will be optimized.
Maybe the next step should be to integrate the code into the other
calling convention lowering. Here is what i have at the moment:
If callingconv::fastcc is used the
2007 Jun 24
1
[LLVMdev] alloca on Win32
The alloca hook is in lib\System\Win32\DynamicLibrary.inc all the way at the
bottom. You'll see a __MING32__ #ifdef around the definition. You just have
to implement those methods and it'll work just fine.
Jake
On 6/24/07, Scott Graham <scott.llvm at h4ck3r.net> wrote:
>
> Hi
>
> Thanks for the info, it led to the source of the error I was having.
>
> I was using