search for: label_case3

Displaying 2 results from an estimated 2 matches for "label_case3".

Did you mean: label_case2
2013 Dec 20
3
[LLVMdev] Switch instruction optimization
...E int2e(long i) { switch(i) { case 0: return A; case 1: return B; case 2: return C; default: return A; } } It is compiled to this IR with O3 optimization: define i64 @int2e(i64 %i_arg) #0 { entry: switch i64 %i_arg, label %label_case1 [ i64 2, label %label_case3 i64 1, label %label_case2 ] label_case1: ; preds = %entry, %label_case3, %label_case2 %merge = phi i64 [ %i_arg, %label_case2 ], [ %i_arg, %label_case3 ], [ 0, %entry ] ret i64 %merge label_case2: ; preds = %entry...
2013 Dec 20
0
[LLVMdev] Switch instruction optimization
...t's a guess. I'm reading the code for the first time.) I'd suggest filling a bug with all of the options you're running with. We really should catch this case. Well, really there's two missed optimization cases here. Even without the case value forwarding, label_case2 and label_case3 are redundant. Philip On 12/20/13 6:33 AM, Pawe? Bylica wrote: > Hello there, > > I have a high level code which would look like that in C++: > > enum E { A, B, C }; > > E int2e(long i) { > switch(i) { > case 0: return A; > case 1: return B; >...