Displaying 3 results from an estimated 3 matches for "_z2f2pi".
Did you mean:
_z2f1bpi
2017 Jul 31
4
GEP with a null pointer base
...ser code,
with real names, etc).
& it's actually Jump Threading that makes the code in the 'if' block (once
inlined into f3) unreachable:
*** IR Dump Before Jump Threading ***
; Function Attrs: uwtable
define void @_Z2f3v() local_unnamed_addr #1 {
entry:
%call = call zeroext i1 @_Z2f2Pi(i32* null)
br i1 %call, label %if.then.i, label %_Z2f1bPi.exit
if.then.i: ; preds = %entry
store i32 3, i32* null, align 4, !tbaa !2
br label %_Z2f1bPi.exit
_Z2f1bPi.exit: ; preds = %entry,
%if.then.i
ret void
}
***...
2017 Aug 01
0
GEP with a null pointer base
...gt; & it's actually Jump Threading that makes the code in the 'if' block (once inlined into f3) unreachable:
>
> *** IR Dump Before Jump Threading ***
> ; Function Attrs: uwtable
> define void @_Z2f3v() local_unnamed_addr #1 {
> entry:
> %call = call zeroext i1 @_Z2f2Pi(i32* null)
> br i1 %call, label %if.then.i, label %_Z2f1bPi.exit
>
> if.then.i: ; preds = %entry
> store i32 3, i32* null, align 4, !tbaa !2
> br label %_Z2f1bPi.exit
>
> _Z2f1bPi.exit: ; preds =...
2017 Jul 31
2
GEP with a null pointer base
Dave,
Dead code elimination is generally done in a pass called dead code elimination,
Can you give concrete examples why the same would not be true for UB code elimination ?
Yes, speculatively hoisting code requires it to be UB-free, but that has nothing to do with
UBCE deleting entire blocks of code because of the existence of UB. The former requires
an analysis proving UB-absense, the