Displaying 20 results from an estimated 57 matches for "uleb128".
2010 Jan 22
2
[LLVMdev] Exception handling question
...ign 4
GCC_except_table153:
.byte 0x0 # Padding
.Lexception153:
.byte 0xFF # @LPStart format
(DW_EH_PE_omit)
.byte 0x0 # @TType format
(DW_EH_PE_absptr)
.uleb128 28 # @TType base offset
.byte 0x3 # Call site format
(DW_EH_PE_udata4)
.uleb128 26 # Call site table size
.long .Llabel291-.Leh_func_begin153 # Region star...
2010 Jan 22
0
[LLVMdev] Exception handling question
...# Padding
.byte 0
# Padding
.Lexception1:
.byte 255
# @LPStart format
(omit)
.byte 0
# @TType format
(absptr)
.uleb128 15 # @TType base offset
.byte 3
# Call site format
(udata4)
.uleb128 13 # Call site table size
.long .Llabel1-.Leh_func_begin1 # Region start
.long ....
2011 Sep 02
2
[LLVMdev] Exception Tables in latest LLVM
...Exception Tables
generated any more such as the one below:
.section .gcc_except_table,"a", at progbits
.align 4
GCC_except_table0:
.Lexception0:
.byte 255 # @LPStart Encoding = omit
.byte 3 # @TType Encoding = udata4
.uleb128 41 # @TType base offset
.byte 3 # Call site Encoding = udata4
.uleb128 39 # Call site table length
.Lset0 = .Leh_func_begin0-.Leh_func_begin0 # Region start
.long .Lset0
.Lset1 = .Ltmp0-.Leh_func_begin0 # Region length...
2010 Jan 22
0
[LLVMdev] Exception handling question
....byte 0x0 # Padding
> .Lexception153:
> .byte 0xFF # @LPStart format
> (DW_EH_PE_omit)
> .byte 0x0 # @TType format
> (DW_EH_PE_absptr)
> .uleb128 28 # @TType base offset
>
> .byte 0x3 # Call site format
> (DW_EH_PE_udata4)
> .uleb128 26 # Call site table size
> .long .Llabel291-.Leh_func_begin153...
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
2018 Jan 06
2
LLVM EH tables much larger than GCC's
...estigating the size of Clang's generated binaries relative to GCC,
when targeting Android, and I've noticed that Clang's exception tables are
much larger -- the .ARM.extab section is about 2.5 times as large in two
examples.
I noticed a couple of differences between Clang and GCC:
1. *ULEB128 encoding.*
In the call site table, GCC encodes offsets using a ULEB128 variable-length
encoding, whereas LLVM uses fixed-size 32-bit values (udata4).
Switching to ULEB128 is a large size improvement. For instance, I'm
currently playing with Qt5, and the libQt5Core.so binary is about 4MB with...
2011 Sep 02
0
[LLVMdev] Exception Tables in latest LLVM
...Ciao, Duncan.
>
> .section .gcc_except_table,"a", at progbits
> .align 4
> GCC_except_table0:
> .Lexception0:
> .byte 255 # @LPStart Encoding = omit
> .byte 3 # @TType Encoding = udata4
> .uleb128 41 # @TType base offset
> .byte 3 # Call site Encoding = udata4
> .uleb128 39 # Call site table length
> .Lset0 = .Leh_func_begin0-.Leh_func_begin0 # Region start
> .long .Lset0
> .Lset1 = .Ltmp0-.Leh_func_beg...
2009 Mar 13
2
[LLVMdev] how to reslove gcc_except_table?
...3.cpp -o eh3.s
the except table of the eh3.s
106 .section .gcc_except_table,"a", at progbits
107 .align 4
108 .LLSDA2:
109 .byte 0xff # @LPStart format (omit)
110 .byte 0x0 # @TType format (absolute)
111 .uleb128 .LLSDATT2-.LLSDATTD2 # @TType base offset
112 .LLSDATTD2:
113 .byte 0x1 # call-site format (uleb128)
114 .uleb128 .LLSDACSE2-.LLSDACSB2 # Call-site table length
115 .LLSDACSB2:
116 .uleb128 0x0 # region 0 landing pad
117 .uleb128 0...
2013 Feb 04
2
[LLVMdev] ARM c++ exceptions handling not working with clang/llvm-3.2?
...r3
sub sp, fp, #4
ldmfd sp!, {fp, lr}
bx lr
.L10:
.align 2
.L9:
.word _ZTIi
.word .LC0
.global __gxx_personality_v0
.personality __gxx_personality_v0
.handlerdata
.align 2
.LLSDA6:
.byte 0xff
.byte 0
.uleb128 .LLSDATT6-.LLSDATTD6
.LLSDATTD6:
.byte 0x1
.uleb128 .LLSDACSE6-.LLSDACSB6
.LLSDACSB6:
.uleb128 .LEHB0-.LFB6
.uleb128 .LEHE0-.LEHB0
.uleb128 .L7-.LFB6
.uleb128 0x1
.uleb128 .LEHB1-.LFB6
.uleb128 .LEHE1-.LEHB1
.uleb128 0
.uleb128 0
.uleb128 .L...
2011 Sep 02
2
[LLVMdev] Exception Tables in latest LLVM
...section .gcc_except_table,"a", at progbits
>> .align 4
>> GCC_except_table0:
>> .Lexception0:
>> .byte 255 # @LPStart Encoding = omit
>> .byte 3 # @TType Encoding = udata4
>> .uleb128 41 # @TType base offset
>> .byte 3 # Call site Encoding = udata4
>> .uleb128 39 # Call site table length
>> .Lset0 = .Leh_func_begin0-.Leh_func_begin0 # Region start
>> .long .Lset0
>> .Lset1...
2011 Jan 22
1
[LLVMdev] View variable-register map
Thank you Frits! I noticed the following lines in the dwarf output (run
with -O2):
.uleb128 40 # Offset
.byte 134 # DW_CFA_offset + Reg (6)
.uleb128 4 # Offset
.byte 135 # DW_CFA_offset + Reg (7)
.uleb128 3 # Offset
.byte 131 # DW_CFA_offset + Reg (3...
2011 Aug 05
0
[LLVMdev] RFC: Exception Handling Rewrite
...ot;, s);
}
}
GCC outputs this:
[Irk:llvm] gcc-4.2 -S -o - -dA t.cpp -O3
.text
.align 4,0x90
.globl __Z3foov
__Z3foov:
. . .
LEHB0:
call __Z3bazv
LEHE0:
. . .
GCC_except_table0:
LLSDA8:
.byte 0xff # @LPStart format (omit)
.byte 0x9b # @TType format (indirect pcrel sdata4)
.byte 0x25 # uleb128 0x25; @TType base offset
.byte 0x3 # call-site format (udata4)
.byte 0x1a # uleb128 0x1a; Call-site table length
.set L$set$0,LEHB0-LFB8
.long L$set$0 # region 0 start
.set L$set$1,LEHE0-LEHB0
.long L$set$1 # length
.set L$set$2,L6-LFB8
.long L$set$2 # landing pad
.byte 0x1 # uleb128 0x1;...
2010 Feb 05
3
[LLVMdev] Exception Table Padding Change
...GCC_except_table* labels are now different.
It looks like your goal is to keep the 32-bit pointers in the call-site table 4-byte aligned. Here is another solution, instead of having two labels at the start of the LSDA (with pad bytes between them), have no pad bytes and instead use an unnormalized uleb128 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...
2011 Sep 02
0
[LLVMdev] Exception Tables in latest LLVM
...gt; Ciao, Duncan.
>>
>>>
>>> .section .gcc_except_table,"a", at progbits
>>> .align 4
>>> GCC_except_table0:
>>> .Lexception0:
>>> .byte 255 # @LPStart Encoding = omit
>>> .byte 3 # @TType Encoding = udata4
>>> .uleb128 41 # @TType base offset
>>> .byte 3 # Call site Encoding = udata4
>>> .uleb128 39 # Call site table length
>>> .Lset0 = .Leh_func_begin0-.Leh_func_begin0 # Region start
>>> .long .Lset0
>>> .Lset1 = .Ltmp0-.Leh_func_begin0 # Region length
>>> .l...
2010 Feb 06
2
[LLVMdev] Exception Table Padding Change
...n Sands wrote:
> Hi Bill,
>
>> It looks like your goal is to keep the 32-bit pointers in the call-site table 4-byte aligned. Here is another solution, instead of having two labels at the start of the LSDA (with pad bytes between them), have no pad bytes and instead use an unnormalized uleb128 for the call-site table length. By unnormalized, I mean one with leading zeros. For instance, instead of:
>
> this sounds like a good idea to me.
>
Great! Thanks, Duncan. :-)
-bw
2009 Mar 13
0
[LLVMdev] how to reslove gcc_except_table?
...t match then the next action to consider is
offset -3 from here (0x7d), i.e. it will next examine
119 .byte 0x1 # Action record table
120 .byte 0x0
i.e. it will try and match with _ZTIb. If this
doesn't match then it is all over (0x0).
> 116 .uleb128 0x0 # region 0 landing pad
> 117 .uleb128 0x5 # action
> 118 .LLSDACSE2:
> 119 .byte 0x1 # Action record table
> 120 .byte 0x0
> 121 .byte 0x2
> 122 .byte 0x7d
> 123 .byte 0x3
>...
2011 Aug 05
3
[LLVMdev] RFC: Exception Handling Rewrite
Bill,
ooops, yes, I described the meaning of "throw(A)" backwards,
but I still
think my example shows why you cannot merge LandingpadInst while
inlining because multiple filter-lists on a LandingpadInst don't make
sense.
Perhaps I'm reading your original spec wrong, perhaps I'm mis-reading
Duncan's emails, but I read them to mean that your syntax supports
2016 Oct 27
8
(RFC) Encoding code duplication factor in discriminator
...nator: 0x100
if (i++ < N) {
foo(); // discriminator: 0x200
if (i++ < N) {
foo(); // discriminator: 0x300
}
}
}
The cost of this change would be increased debug_line size because: 1. we
are recording more discriminators 2. discriminators become larger and will
take more ULEB128 encoding.
The benefit is that the sample pgo profile can accurately represent the
code execution frequency. And we do not need to introduce new building
blocks to debug info.
Comments?
Thanks,
Dehao
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists....
2010 Feb 06
0
[LLVMdev] Exception Table Padding Change
Hi Bill,
> It looks like your goal is to keep the 32-bit pointers in the call-site table 4-byte aligned. Here is another solution, instead of having two labels at the start of the LSDA (with pad bytes between them), have no pad bytes and instead use an unnormalized uleb128 for the call-site table length. By unnormalized, I mean one with leading zeros. For instance, instead of:
this sounds like a good idea to me.
Ciao,
Duncan.
2010 Feb 06
0
[LLVMdev] Exception Table Padding Change
Hi Bill,
Just to verify that I understand correctly, the proposal should not have any affect on pre-existing code since we
already call readULEB128(...) for the call-site table length. High bit set for 3 bytes results in 4 byte read as per
uleb128. This is obvious now that I've taken time to write this, but hey if nothing else it helps the list. :-)
Garrison
PS: Are you still revamping the llvm exception API as you proposed a couple of m...