search for: _z1fv

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