-
Notifications
You must be signed in to change notification settings - Fork 160
Closed
Labels
IR differenceA difference in ClangIR-generated LLVM IR that could complicate reusing original CodeGen testsA difference in ClangIR-generated LLVM IR that could complicate reusing original CodeGen testsgood first issueGood for newcomersGood for newcomers
Description
In clang/test/CIR/CodeGen/tbaa-vptr.cpp
:
The LLVM IR produced by OG is as follows:
define dso_local void @_ZN1BD0Ev(ptr noundef nonnull align 8 dereferenceable(9) initializes((0, 8)) %this) unnamed_addr #0 align 2 {
entry:
store ptr getelementptr inbounds nuw inrange(-16, 16) (i8, ptr @_ZTV1B, i64 16), ptr %this, align 8, !tbaa !5
%0 = getelementptr inbounds nuw i8, ptr %this, i64 8
tail call void @_ZN6MemberD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %0) #3
tail call void @_ZN1AD2Ev(ptr noundef nonnull align 8 dereferenceable(9) %this) #3
tail call void @_ZdlPvm(ptr noundef %this, i64 noundef 16) #4
ret void
}
In contrast, the LLVM IR generated by ClangIR is as follows:
define dso_local void @_ZN1BD0Ev(ptr %0) #1 {
tail call void @_ZN1BD1Ev(ptr %0) #0
tail call void @_ZdlPvm(ptr %0, i64 16)
ret void
}
Is there something missing in the ClangIR?
Originally posted by @PikachuHyA in #1463 (comment)
Metadata
Metadata
Labels
IR differenceA difference in ClangIR-generated LLVM IR that could complicate reusing original CodeGen testsA difference in ClangIR-generated LLVM IR that could complicate reusing original CodeGen testsgood first issueGood for newcomersGood for newcomers