Displaying 20 results from an estimated 22 matches for "_z1fv".
2017 Dec 19
4
A code layout related side-effect introduced by rL318299
...introduced code layout issue. The performance regression is a
side-effect of rL318299. I got two testcases a.ll and b.ll attached to
illustrate the problem. a.ll was generated by rL318298 and b.ll was
generated by rL318299.
-------------------------- a.ll ----------------------------
declare void @_Z1fv() local_unnamed_addr #2
@i = global i8 0, align 1
define i8* @_Z1gPcS_S_(i8* nocapture readonly %d, i8* %h, i8* readnone
returned %p3) local_unnamed_addr #3 {
entry:
br label %while.cond
while.cond: ; preds = %while.body,
%entry
%h.addr.0 = phi i8* [ %h,...
2017 Dec 19
2
A code layout related side-effect introduced by rL318299
...ion
>> is a side-effect of rL318299. I got two testcases a.ll and b.ll attached to
>> illustrate the problem. a.ll was generated by rL318298 and b.ll was
>> generated by rL318299.
>>
>> -------------------------- a.ll ----------------------------
>> declare void @_Z1fv() local_unnamed_addr #2
>> @i = global i8 0, align 1
>>
>> define i8* @_Z1gPcS_S_(i8* nocapture readonly %d, i8* %h, i8* readnone
>> returned %p3) local_unnamed_addr #3 {
>> entry:
>> br label %while.cond
>>
>> while.cond:...
2013 Dec 09
4
[LLVMdev] Float undef value propagation
Constant propagation pass generates constant expression when undef is used in float instructions instead of propagating the undef value.
; Function Attrs: nounwind
define float @_Z1fv() #0 {
entry:
%add = fadd fast float undef, 2.000000e+00
ret float %add
}
Becomes:
; Function Attrs: nounwind
define float @_Z1fv() #0 {
entry:
ret float fadd (float undef, float 2.000000e+00)
}
Is it safe to transform "%add = fadd fast float undef, 2.000000e+00" to "undef&q...
2013 Dec 10
0
[LLVMdev] Float undef value propagation
On 12/9/13 2:13 PM, Raoux, Thomas F wrote:
>
> Constant propagation pass generates constant expression when undef is
> used in float instructions instead of propagating the undef value.
>
> ; Function Attrs: nounwind
>
> define float @_Z1fv() #0 {
>
> entry:
>
> %add = fadd fast float undef, 2.000000e+00
>
> ret float %add
>
> }
>
> Becomes:
>
> ; Function Attrs: nounwind
>
> define float @_Z1fv() #0 {
>
> entry:
>
> ret float fadd (float undef, float 2.000000e+00)
>
>...
2013 Dec 11
1
[LLVMdev] Float undef value propagation
...> On 12/9/13 2:13 PM, Raoux, Thomas F wrote:
>
>
>
>
>
> Constant propagation pass generates constant expression when undef is
> used in float instructions instead of propagating the undef value.
>
>
>
> ; Function Attrs: nounwind
>
> define float @_Z1fv() #0 {
>
> entry:
>
> %add = fadd fast float undef, 2.000000e+00
>
> ret float %add
>
> }
>
>
>
> Becomes:
>
>
>
> ; Function Attrs: nounwind
>
> define float @_Z1fv() #0 {
>
> entry:
>
> ret float fadd (float undef, flo...
2014 Feb 13
2
[LLVMdev] [cfe-dev] Unwind behaviour in Clang/LLVM
...Android is using EHABI (I think it is), the default now is to
> output full tables all the time, everywhere. This will change to be
> the same as x86 soon.
It does use EHABI, but at r201326:
$ cat 1.cc
int f() {}
$ ./bin/clang++ -target arm-linux-androideabi 1.cc -c
$ readelf -u 1.o
0x0 <_Z1fv>: 0x1 [cantunwind]
$ ./bin/clang++ -target arm-linux-androideabi 1.cc -c -funwind-tables
$ readelf -u 1.o
0x0 <_Z1fv>: 0x8000b0b0
Compact model 0
0x00 vsp = vsp + 4
0xb0 finish
0xb0 finish
2013 Oct 24
2
[LLVMdev] LLVM use chains
Hi,
I have:
...
@.str1 = private unnamed_addr constant [21 x i8] c"Now f is a
function\0A\00", align 1
; Function Attrs: ssp uwtable
define i32 @_Z1fv() #2 {
entry:
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21
x i8]* @.str1, i32 0, i32 0))
ret i32 0
}
Then I get after trying to erase the function from the module:
511 GV->eraseFromParent();
(gdb) p GV->dump()
; Function Attrs: ssp uwtable
define i...
2013 Oct 24
0
[LLVMdev] LLVM use chains
On 23 October 2013 22:41, Vassil Vassilev <vvasilev at cern.ch> wrote:
> Hi,
> I have:
> ...
> @.str1 = private unnamed_addr constant [21 x i8] c"Now f is a
> function\0A\00", align 1
> ; Function Attrs: ssp uwtable
> define i32 @_Z1fv() #2 {
> entry:
> %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21 x
> i8]* @.str1, i32 0, i32 0))
> ret i32 0
> }
>
> Then I get after trying to erase the function from the module:
>
> 511 GV->eraseFromParent();
> (gdb) p GV->d...
2007 Dec 09
0
[LLVMdev] Darwin vs exceptions
...try {
> f();
> } catch(...) { printf("caught\n"); }
> }
this example indeed shows the problem. Let me explain to see if we agree on what
the problem is. Suppose we don't artificially add catch-alls to selectors. Then
the above example compiles to:
define void @_Z1fv() {
...
invoke void @__cxa_throw( something ) noreturn
to label %somewhere unwind label %lpad
...
lpad:
%eh_ptr = tail call i8* @llvm.eh.exception( )
%eh_select8 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (.....
2007 Dec 09
3
[LLVMdev] Darwin vs exceptions
(Mail system seems to have eaten this, sorry if it's a repeat)
On Dec 8, 2007, at 12:48 AM, Duncan Sands wrote:
> Hi Dale,
>
>> - Why was C++ claiming that every selector has a catch-all handler?
>
> this is easy: because the semantics of invoke require it. Yes,
> really.
> If unwinding reaches an invoke then control is required to jump to the
> unwind basic
2013 Dec 11
2
[LLVMdev] Float undef value propagation
...mdev at cs.uiuc.edu>
Subject: Re: [LLVMdev] Float undef value propagation
On 12/9/13 2:13 PM, Raoux, Thomas F wrote:
Constant propagation pass generates constant expression when undef is used in float instructions instead of propagating the undef value.
; Function Attrs: nounwind
define float @_Z1fv() #0 {
entry:
%add = fadd fast float undef, 2.000000e+00
ret float %add
}
Becomes:
; Function Attrs: nounwind
define float @_Z1fv() #0 {
entry:
ret float fadd (float undef, float 2.000000e+00)
}
Is it safe to transform "%add = fadd fast float undef, 2.000000e+00" to "undef&q...
2014 Feb 13
2
[LLVMdev] [cfe-dev] Unwind behaviour in Clang/LLVM
On Thu, Feb 13, 2014 at 5:39 PM, Renato Golin <renato.golin at linaro.org> wrote:
> On 13 February 2014 11:35, Evgeniy Stepanov <eugenis at google.com> wrote:
>> Unwind table index '.ARM.exidx' at offset 0x818 contains 4 entries:
>> 0x5d4 <main>: 0x1 [cantunwind]
>
> This is exactly what I meant.
>
>
>> because the latter prevent any
2013 Oct 24
2
[LLVMdev] LLVM use chains
...n 23 October 2013 22:41, Vassil Vassilev <vvasilev at cern.ch> wrote:
>> Hi,
>> I have:
>> ...
>> @.str1 = private unnamed_addr constant [21 x i8] c"Now f is a
>> function\0A\00", align 1
>> ; Function Attrs: ssp uwtable
>> define i32 @_Z1fv() #2 {
>> entry:
>> %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21 x
>> i8]* @.str1, i32 0, i32 0))
>> ret i32 0
>> }
>>
>> Then I get after trying to erase the function from the module:
>>
>> 511 GV->er...
2005 Apr 14
1
[LLVMdev] Variables and/or identifiers?
...d
to create a variable, what should I use? For instance, consider the
following C-like language snippet:
int f()
{
int i = rand();
if(i > 5)
i = 1;
return i;
}
Ignoring optimizations, what should I use to represent 'i'? Online
demo gives the following output for the above code:
int %_Z1fv() {
entry:
%tmp.0 = call int %rand( ); <int> [#uses=2]
%tmp.2 = setgt int %tmp.0, 5; <bool> [#uses=1]
%retval = select bool %tmp.2, int 1, int %tmp.0; <int> [#uses=1]
ret int %retval
}
but this is optimized, 'i' (tmp.0) is never reassigned a value. It
looks like no matter...
2011 Aug 09
1
[LLVMdev] Debug information for llvm-clang
...D = 'C:\clangParam\clangExample.cpp'
target datalayout =
"e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:128:128-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
target triple = "i686-pc-win32"
%class.classDer = type { i8 }
define i32 @_Z1fv() {
entry:
%x = alloca %class.classDer, align 1
%call = call i32 @_ZN8classDer4get1Ev(%class.classDer* %x)
ret i32 %call
}
define linkonce_odr i32 @_ZN8classDer4get1Ev(%class.classDer* %this)
nounwind align 2 {
entry:
%this.addr = alloca %class.classDer*, align 4
store %class.classDer* %t...
2007 Dec 10
3
[LLVMdev] Darwin vs exceptions
...printf("caught\n"); }
>> }
>
> this example indeed shows the problem. Let me explain to see if we
> agree on what
> the problem is. Suppose we don't artificially add catch-alls to
> selectors. Then
> the above example compiles to:
>
> define void @_Z1fv() {
> ...
> invoke void @__cxa_throw( something ) noreturn
> to label %somewhere unwind label %lpad
> ...
> lpad:
> %eh_ptr = tail call i8* @llvm.eh.exception( )
> %eh_select8 = tail call i32 (i8*, i8*, ...)*
> @llvm.eh.selector....
2007 Dec 12
0
[LLVMdev] Darwin vs exceptions
...suppose the IR was produced by gcc. Consider this example:
class A {}; class B {};
int i;
extern void f();
void g() { try { f(); } catch(A) { i = 1; } }
void h() { try { g(); } catch(B) { i = 2; } }
Without catch-alls this compiles to something like:
define void @_Z1gv() {
entry:
invoke void @_Z1fv( )
to label %UnifiedReturnBlock unwind label %lpad
...
lpad: ; preds = %entry
%eh_ptr = tail call i8* @llvm.eh.exception( )
%eh_select = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i32 (...)* @__gxx_personality_v0, i8* A)
%eh_typeid = tail call i32 @llvm.eh.typeid.for....
2007 Dec 10
3
[LLVMdev] Darwin vs exceptions
On Dec 10, 2007, at 11:38 AM, Duncan Sands wrote:
>>> ... If you force a "cleanup" by changing the selector call to:
>>> %eh_select8.i = tail call i32 (i8*, i8*, ...)*
>>> @llvm.eh.selector.i32( i8* %eh_ptr.i, i8* bitcast (i32 (...)*
>>> @__gxx_personality_v0 to i8*), i32 0)
>>> then it doesn't work either: the unwinder observes that
2014 Feb 15
2
[LLVMdev] [cfe-dev] Unwind behaviour in Clang/LLVM
...put full tables all the time, everywhere. This will change to be
>> > the same as x86 soon.
>>
>> It does use EHABI, but at r201326:
>> $ cat 1.cc
>> int f() {}
>> $ ./bin/clang++ -target arm-linux-androideabi 1.cc -c
>> $ readelf -u 1.o
>> 0x0 <_Z1fv>: 0x1 [cantunwind]
>> $ ./bin/clang++ -target arm-linux-androideabi 1.cc -c -funwind-tables
>> $ readelf -u 1.o
>> 0x0 <_Z1fv>: 0x8000b0b0
>> Compact model 0
>> 0x00 vsp = vsp + 4
>> 0xb0 finish
>> 0xb0 finish
>> ______...
2014 May 11
2
[LLVMdev] [cfe-dev] Code generation for noexcept functions
On Sun, May 11, 2014 at 8:19 AM, Stephan Tolksdorf <st at quanttec.com> wrote:
> Hi,
>
> When clang/LLVM can't prove that a noexcept function only contains
> non-throwing code, it seems to insert an explicit exception handler that
> calls std::terminate. Why doesn't clang leave it to the eh personality
> function to call std::terminate when an exception is thrown