search for: leh_func_begin1

Displaying 18 results from an estimated 18 matches for "leh_func_begin1".

Did you mean: leh_func_begin0
2010 Jan 22
0
[LLVMdev] Exception handling question
...eh table, and has the personality function recorded in the CIE. This is with llc from top-of-tree. Do you see something different? Ciao, Duncan. .file "selector.ll" .text .align 16 .globl f .type f, at function f: # @f .Leh_func_begin1: # BB#0: # %e subq $8, %rsp .Llabel4: .Llabel1: callq g .Llabel2: # BB#1: # %c addq $8, %rsp ret .LBB1_2: # %u .Llabel3: addq $8,...
2010 Jan 22
2
[LLVMdev] Exception handling question
...x86-64 assembler for my function including eh table is: .text .align 16 .globl _ZN4N0014Main5test5EN2IO6WriterEiA_l .type _ZN4N0014Main5test5EN2IO6WriterEiA_l, at function _ZN4N0014Main5test5EN2IO6WriterEiA_l: # @_ZN4N0014Main5test5EN2IO6WriterEiA_l .Leh_func_begin153: .Lfunc_begin153: .LBB153_0: # %entry subq $56, %rsp .Llabel294: .LBB153_1: movq %rdi, 24(%rsp) movq %rsi, 48(%rsp) movl %edx, 44(%rsp) movq %rcx, 32(%rsp) .LBB153_2:...
2010 Jan 21
4
[LLVMdev] Exception handling question
Hi, I'm trying to get exception handling working in my compiler targetting LLVM. I've been working from the LLVM exception handling documentation (including http://llvm.org/docs/ExceptionHandling.html and http://wiki.llvm.org/HowTo:_Build_JIT_based_Exception_mechanism) and looking at g++-llvm's output. I've been trying to get a minimal test function to work, which simply invokes
2010 Jan 22
0
[LLVMdev] Exception handling question
...s relevant. > > > .text > .align 16 > .globl _ZN4N0014Main5test5EN2IO6WriterEiA_l > .type _ZN4N0014Main5test5EN2IO6WriterEiA_l, at function > _ZN4N0014Main5test5EN2IO6WriterEiA_l: # > @_ZN4N0014Main5test5EN2IO6WriterEiA_l > .Leh_func_begin153: > .Lfunc_begin153: > .LBB153_0: # %entry > subq $56, %rsp > .Llabel294: > > .LBB153_1: > movq %rdi, 24(%rsp) > movq %rsi, 48(%rsp) > movl %edx, 44(%rsp) > movq %rcx, 32(%rsp) > .L...
2009 Sep 14
4
[LLVMdev] Exception Handling Tables Question
...uot;); } }; static void inline_me(void) { Cleanup C; throw 0; } int main(void) { try { inline_me(); } catch (...) { printf("in catch all\n"); } return 0; } (assume it's all been inlined), the EH handling table for "main" goes from Leh_func_begin1 to Leh_func_end1, marking off each region whether it can throw or not. From my reading of the Exception Tables documentation, this is unnecessary – at least for C++. If a call throws and it doesn't have an entry in the unwind table, then the "terminate()" function is called. I...
2012 Mar 02
3
[LLVMdev] how to annotate assembler
...7, 8 ret # 25 return_internal [length = 1] .cfi_endproc Now I may look into config/i386/i386.md, and look for mentioned *pushdi2_rex64, movdi_1_rex64, floatdidf2_sse_interunit and other patterns and study how they work. How to make the same annotation for clang output assembler code? test: .Leh_func_begin1: pushq %rbp # ??? what insn in X86InstrInfo.td? .Llabel1: movq %rsp, %rbp # ??? what insn in X86InstrInfo.td? .Llabel2: movq %rdi, -16(%rbp) # ??? what insn in X86InstrInfo.td? movq -16(%rbp), %rax # ??? what insn in X86InstrInfo.td? cvtsi2sdq %rax, %xmm0 # ??? what insn i...
2009 Sep 14
0
[LLVMdev] Exception Handling Tables Question
Hi Bill, > Right now we generate call sites for all of the code in a function, > even for code that cannot (or at least shouldn't) throw an exception. ... > (assume it's all been inlined), the EH handling table for "main" goes > from Leh_func_begin1 to Leh_func_end1, marking off each region whether > it can throw or not. From my reading of the Exception Tables > documentation, this is unnecessary – at least for C++. If a call > throws and it doesn't have an entry in the unwind table, then the > "terminate()" f...
2010 Feb 05
3
[LLVMdev] Exception Table Padding Change
...128 for the call-site table length. By unnormalized, I mean one with leading zeros. For instance, instead of: .section __DATA,__gcc_except_tab .align 2 GCC_except_table1: .byte 0x0 .byte 0x0 .byte 0x0 Lexception1: .byte 0xFF .byte 0x0 .byte 0x26 .byte 0x3 .byte 0x1A .set Lset1eh,Llabel1-Leh_func_begin1 .long Lset1eh Use: .section __DATA,__gcc_except_tab .align 2 GCC_except_table1: Lexception1: .byte 0xFF .byte 0x0 .byte 0x26 .byte 0x3 .byte 0x9A, 0x80, 0x80, 0x00 # This is 26 in uleb128 with leading zeros to pad it out to 4 bytes .set Lset1eh,Llabel1-Leh_func_begin1 .long Lset...
2012 Mar 02
0
[LLVMdev] how to annotate assembler
...; .cfi_endproc > > Now I may look into config/i386/i386.md, and look for mentioned > *pushdi2_rex64, movdi_1_rex64, floatdidf2_sse_interunit and other > patterns and study how they work. > > How to make the same annotation for clang output assembler code? > > test: > .Leh_func_begin1: > pushq %rbp # ??? what insn in X86InstrInfo.td? > .Llabel1: > movq %rsp, %rbp # ??? what insn in X86InstrInfo.td? > .Llabel2: > movq %rdi, -16(%rbp) # ??? what insn in X86InstrInfo.td? > movq -16(%rbp), %rax # ??? what insn in X86InstrInfo.td? > cvtsi2sdq...
2010 Jan 08
4
[LLVMdev] Inlining
...cts/Nil/nil(0)$ ./testInline ; echo $? 42 gemini:~/Projects/Nil/nil(0)$ and the generated assembly (with much red tape snipped for now): --- .file "testInline.bc" .text .align 16 .globl foo .type foo, at function foo: # @foo .Leh_func_begin1: .LBB1_0: imull $7, %edi, %eax ret .size foo, .-foo .Leh_func_end1: .align 16 .globl main .type main, at function main: # @main .Leh_func_begin2: .LBB2_0: subq $8, %rsp .Llabel1: movl $6, %edi call foo addq $8, %rsp ret .size main,...
2007 Nov 06
1
[LLVMdev] Two labels around one instruction in Codegen
...v i32 2, %argc to label %continue unwind to label %unwindblock ; <i32> [#uses=1] continue: ret i32 %tmp2 unwindblock: unwind } And here is the resulting x86 code (Llabel1 was supposed to be before the {ctld, idvl} and Llabel2 which was after is not generated) test: .Leh_func_begin1: .Llabel4: movl $2, %eax movl 4(%esp), %ecx cltd idivl %ecx .Llabel1: .LBB1_1: # continue ret .LBB1_2: # unwindblock Thanks Duncan, Nicolas
2010 Mar 10
1
[LLVMdev] Vectors of length 3 as first-class types
...# constant pool <4 x i32> .long 1 # 0x1 .long 2 # 0x2 .long 3 # 0x3 .zero 4 .text Should this data not be loaded as is into %xmm0 like in the case of vector of four?: retFour: # @retFour .Leh_func_begin1: # BB#0: movaps .LCPI1_0, %xmm0 ret This would of course leave the responsibility of ignoring the 4th lane to the caller. Debugging the code generation, I notice that the v3i32 is widened to v4i32, but when X86TargetLowering::CanLowerReturn, the v3i32 is seems to be split up into three MVT::...
2011 Dec 22
1
[LLVMdev] tail call optimization question
...es1 %10 = phi i64 [ %5, %if.yes1 ], [ %9, %if.no2 ] br label %if.after } LLVM generates the following assembly, seemingly applying tail call optimization even though the ret instruction does not follow the tail call instruction: <snip> _ack.15: ## @ack.15 Leh_func_begin1: ## BB#0: ## %entry pushq %rbx Ltmp1: Ltmp2: testq %rdi, %rdi jle LBB1_3 ## BB#1: ## %if.no movq %rdi, %rbx testq %rsi, %rsi jle LBB1_4 ## BB#2: ## %if.no2 decq %rsi movq %rbx, %rdi callq _ack.15...
2012 Mar 02
2
[LLVMdev] how to annotate assembler
...Now I may look into config/i386/i386.md, and look for mentioned >> *pushdi2_rex64, movdi_1_rex64, floatdidf2_sse_interunit and other >> patterns and study how they work. >> >> How to make the same annotation for clang output assembler code? >> >> test: >> .Leh_func_begin1: >>  pushq %rbp          # ??? what insn in X86InstrInfo.td? >> .Llabel1: >>  movq  %rsp, %rbp  # ??? what insn in X86InstrInfo.td? >> .Llabel2: >>  movq  %rdi, -16(%rbp)  # ??? what insn in X86InstrInfo.td? >>  movq  -16(%rbp), %rax  # ??? what insn in X86InstrI...
2008 Sep 26
1
[LLVMdev] Unwinds Gone Wild
...got a > segmentation fault. It looks good to me. Can someone help me out or is > this a bug? > Marc, I tried the exact same example as you did, and got the same issue. If you look at the generated x86 machine code, it looks like unwind is compiled into nothing at all: > foo: > .Leh_func_begin1: > > .Llabel1: > .size foo, .-foo > .Leh_func_end1: > (Note that there isn't even a return instruction). This means your execution just falls through into the following function without unwinding its own stack frame. In the above example, this causes it to fall into main and...
2007 Nov 06
0
[LLVMdev] Two labels around one instruction in Codegen
Hi Nicolas, > In order to have exceptions for non-call instructions (such as sdiv, > load or stores), I'm modifying codegen so that it generates a BeginLabel > and an EndLabel between the "may throwing" instruction. This is what the > codegen of an InvokeInst does. the rule is that all instructions between eh begin labelN and eh end labelN must unwind to the same
2008 Jul 31
4
[LLVMdev] Unwinds Gone Wild
Can anyone tell me if invoke/unwind is stable in 2.3? I'm seeing some really weird stuff -- unwinds are ending up in seemingly arbitrary places... definitely not inside the caller's unwind block My target is x86. As a simple test, I tried to compile the following code and I got a segmentation fault. It looks good to me. Can someone help me out or is this a bug? define i32 @foo() {
2007 Nov 05
4
[LLVMdev] Two labels around one instruction in Codegen
Hi everyone, In order to have exceptions for non-call instructions (such as sdiv, load or stores), I'm modifying codegen so that it generates a BeginLabel and an EndLabel between the "may throwing" instruction. This is what the codegen of an InvokeInst does. However, when generating native code, only BeginLabel is generated, and it is generated after the instruction. I'm not