Displaying 20 results from an estimated 24 matches for "nosanit".
Did you mean:
noinit
2019 Jul 03
2
optimisation issue in an llvm IR pass
...t::get(Int8Ty, 1));
Incr = IRB.CreateAdd(Incr, cf);
//interestingly this totally different approach creates the same
instructions as variant2
CallInst *AddOv = IRB.CreateBinaryIntrinsic(Intrinsic::uadd_with_over
flow, Counter, ConstantInt::get(Int8Ty, 1));
AddOv->setMetadata(M.getMDKindID("nosanitize"), MDNode::get(C, None));
Value *SumWithOverflowBit = AddOv;
Incr = IRB.CreateAdd(IRB.CreateExtractValue(SumWithOverflowBit, 0),
IRB.CreateZExt(IRB.CreateExtractValue(SumWithOverflowBit, 1), Int8Ty));
So - How do I have to write the code that the target code has a chance
of being generated...
2019 Jul 03
3
optimisation issue in an llvm IR pass
...it makes no difference to the generated assembly
> Have you tried using the llvm.uadd.with.overflow.i8 intrinsic?
we have tried this:
CallInst *AddOv =
IRB.CreateBinaryIntrinsic(Intrinsic::uadd_with_overflow, Counter,
ConstantInt::get(Int8Ty, 1));
AddOv->setMetadata(M.getMDKindID("nosanitize"), MDNode::get(C, None));
Value *SumWithOverflowBit = AddOv;
Incr = IRB.CreateAdd(IRB.CreateExtractValue(SumWithOverflowBit, 0),
IRB.CreateZExt(IRB.CreateExtractValue(SumWithOverflowBit, 1), Int8Ty));
but that generated exactly the same as
auto cf = IRB.CreateICmpULT(Incr, ConstantInt...
2018 Aug 02
2
SCEVUDiv simplification
Hello,
I noticed that our SCEVUDiv does not simplify anything when the RHS is not
a constant.
Is that because there is a potential issue with division by zero being
simplified?
For instance, would it be okay to simplify:
((%i * %n)<nuw> /u %n)
into: %i
The way I see it, if %n is 0, then that division is undefined and we can
"define it", at will, as being %i.
Would that make
2020 Jul 08
2
Extracting the !dbg property from LLVM IR function calls
...ation, and am attempting to
extract !dbg numbers from function calls in LLVM IR. However, I've found a
few inconsistencies. For example, this call exists in my module:
%1 = tail call i1 @llvm.type.test(i8* bitcast (i32 (i32)* @_Z5otheri to
i8*), metadata !"_ZTSFiiE") #5, *!dbg !69*, !nosanitize !2
I would like to extract the 69 from this line in my LLVM pass, but when I
dump() the corresponding CallInst, I see the following:
%1 = tail call i1 @llvm.type.test(i8* bitcast (i32 (i32)* @_Z5otheri to
i8*), metadata !"_ZTSFiiE") #5, *!dbg !29*, !nosanitize !2
And finally, the li...
2018 Apr 27
0
ThinLTO + CFI
...-------------------------
define hidden i32 @main(i32, i8** nocapture readnone) local_unnamed_addr #0 !type !3 !type !4 {
%3 = add nsw i32 %0, -2
store i32 %3, i32* @i, align 4, !tbaa !5
%4 = icmp sgt i32 %0, 1
%5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
%6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
%7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata !"_ZTSFivE"), !nosanitize !9
br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
; <label>:8: ; preds = %2
%9 = ptrtoint i32 ()* %5 to i64
tail call void @__ubsan_hand...
2018 Apr 30
4
ThinLTO + CFI
...> define hidden i32 @main(i32, i8** nocapture readnone) local_unnamed_addr #0 !type !3 !type !4 {
> %3 = add nsw i32 %0, -2
> store i32 %3, i32* @i, align 4, !tbaa !5
> %4 = icmp sgt i32 %0, 1
> %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata !"_ZTSFivE"), !nosanitize !9
> br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
>
> ; <label>:8: ; preds = %2
> %9 = ptrtoint i32 ()* %5 to i64
> tai...
2018 May 14
1
ThinLTO + CFI
...> define hidden i32 @main(i32, i8** nocapture readnone) local_unnamed_addr #0 !type !3 !type !4 {
> %3 = add nsw i32 %0, -2
> store i32 %3, i32* @i, align 4, !tbaa !5
> %4 = icmp sgt i32 %0, 1
> %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata !"_ZTSFivE"), !nosanitize !9
> br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
>
> ; <label>:8: ; preds = %2
> %9 = ptrtoint i32 ()* %5 to i64
> ta...
2018 May 01
0
ThinLTO + CFI
...i32, i8** nocapture readnone) local_unnamed_addr
> #0 !type !3 !type !4 {
> > %3 = add nsw i32 %0, -2
> > store i32 %3, i32* @i, align 4, !tbaa !5
> > %4 = icmp sgt i32 %0, 1
> > %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> > %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> > %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata
> !"_ZTSFivE"), !nosanitize !9
> > br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
> >
> > ; <label>:8: ; preds = %2
> > %9 = ptrtoi...
2018 May 01
2
ThinLTO + CFI
...main(i32, i8** nocapture readnone) local_unnamed_addr #0 !type !3 !type !4 {
> > %3 = add nsw i32 %0, -2
> > store i32 %3, i32* @i, align 4, !tbaa !5
> > %4 = icmp sgt i32 %0, 1
> > %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> > %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> > %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata !"_ZTSFivE"), !nosanitize !9
> > br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
> >
> > ; <label>:8: ; preds = %2
> > %9 = ptrtoint i...
2018 May 01
0
ThinLTO + CFI
...i32, i8** nocapture readnone) local_unnamed_addr
> #0 !type !3 !type !4 {
> > %3 = add nsw i32 %0, -2
> > store i32 %3, i32* @i, align 4, !tbaa !5
> > %4 = icmp sgt i32 %0, 1
> > %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> > %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> > %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata
> !"_ZTSFivE"), !nosanitize !9
> > br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
> >
> > ; <label>:8: ; preds = %2
> > %9 = ptrtoi...
2018 Apr 27
3
ThinLTO + CFI
> We could probably tolerate a certain amount of unused jump table entries.
However, I just realized that all non-inline imported calls end up going
through a jump table entry. Is that correct?
In fact it is all calls that go through a function pointer type that is
used anywhere in the program for an indirect call, but depending on your
program that could be very close to "yes".
2018 May 01
2
ThinLTO + CFI
...readnone) local_unnamed_addr #0 !type !3 !type !4 {
> > > %3 = add nsw i32 %0, -2
> > > store i32 %3, i32* @i, align 4, !tbaa !5
> > > %4 = icmp sgt i32 %0, 1
> > > %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> > > %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> > > %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata !"_ZTSFivE"), !nosanitize !9
> > > br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
> > >
> > > ; <label>:8: ; preds = %2
> &...
2018 May 01
0
ThinLTO + CFI
...one)
> local_unnamed_addr #0 !type !3 !type !4 {
> > > %3 = add nsw i32 %0, -2
> > > store i32 %3, i32* @i, align 4, !tbaa !5
> > > %4 = icmp sgt i32 %0, 1
> > > %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> > > %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> > > %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata
> !"_ZTSFivE"), !nosanitize !9
> > > br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
> > >
> > > ; <label>:8: ; preds = %2
&g...
2018 May 01
2
ThinLTO + CFI
...ddr #0 !type !3 !type !4 {
> > > > %3 = add nsw i32 %0, -2
> > > > store i32 %3, i32* @i, align 4, !tbaa !5
> > > > %4 = icmp sgt i32 %0, 1
> > > > %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> > > > %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> > > > %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata !"_ZTSFivE"), !nosanitize !9
> > > > br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
> > > >
> > > > ; <label>:8:...
2018 May 01
0
ThinLTO + CFI
...ddr #0 !type !3 !type !4 {
> > > > %3 = add nsw i32 %0, -2
> > > > store i32 %3, i32* @i, align 4, !tbaa !5
> > > > %4 = icmp sgt i32 %0, 1
> > > > %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> > > > %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> > > > %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata
> !"_ZTSFivE"), !nosanitize !9
> > > > br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
> > > >
> > > > ; <label>:8:...
2018 May 01
0
ThinLTO + CFI
...{
> > > > > %3 = add nsw i32 %0, -2
> > > > > store i32 %3, i32* @i, align 4, !tbaa !5
> > > > > %4 = icmp sgt i32 %0, 1
> > > > > %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> > > > > %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> > > > > %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata
> !"_ZTSFivE"), !nosanitize !9
> > > > > br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
> > > > >
> > > > > ; <label>:8:...
2018 May 01
2
ThinLTO + CFI
...{
> > > > > %3 = add nsw i32 %0, -2
> > > > > store i32 %3, i32* @i, align 4, !tbaa !5
> > > > > %4 = icmp sgt i32 %0, 1
> > > > > %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> > > > > %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> > > > > %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata !"_ZTSFivE"), !nosanitize !9
> > > > > br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
> > > > >
> > > > > ; <label>:8:...
2018 May 01
0
ThinLTO + CFI
...; > %3 = add nsw i32 %0, -2
> > > > > > store i32 %3, i32* @i, align 4, !tbaa !5
> > > > > > %4 = icmp sgt i32 %0, 1
> > > > > > %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> > > > > > %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> > > > > > %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata
> !"_ZTSFivE"), !nosanitize !9
> > > > > > br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
> > > > > >
> > > > > > ; <label...
2018 May 02
1
ThinLTO + CFI
...; > %3 = add nsw i32 %0, -2
> > > > > > store i32 %3, i32* @i, align 4, !tbaa !5
> > > > > > %4 = icmp sgt i32 %0, 1
> > > > > > %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> > > > > > %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> > > > > > %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata !"_ZTSFivE"), !nosanitize !9
> > > > > > br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
> > > > > >
> > > > > > ; <label>...
2018 May 01
0
llvm-dev Digest, Vol 167, Issue 3
...one)
> local_unnamed_addr #0 !type !3 !type !4 {
> > > %3 = add nsw i32 %0, -2
> > > store i32 %3, i32* @i, align 4, !tbaa !5
> > > %4 = icmp sgt i32 %0, 1
> > > %5 = select i1 %4, i32 ()* @foo, i32 ()* @bar
> > > %6 = bitcast i32 ()* %5 to i8*, !nosanitize !9
> > > %7 = tail call i1 @llvm.type.test(i8* nonnull %6, metadata
> !"_ZTSFivE"), !nosanitize !9
> > > br i1 %7, label %10, label %8, !prof !10, !nosanitize !9
> > >
> > > ; <label>:8: ; preds = %2
&g...