-
Notifications
You must be signed in to change notification settings - Fork 161
Open
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 tests
Description
CIR Codegen are missing function and call site attributes such as noalias
, noundef
, nonnull
example code
void test_basic() {
__builtin_operator_delete(__builtin_operator_new(4));
}
Traditional clang (OG) generated code: like
%call = call noalias noundef nonnull ptr @_Znwm(i64 noundef 4)
...
declare noundef nonnull ptr @_Znwm(i64 noundef)
Currently, CIR generates code like:
%1 = call ptr @_Znwm(i64 4)
declare !dbg !3 ptr @_Znwm(i64)
The difference may come from the fact [CIRGenModule::constructAttributeList] not finished (
clangir/clang/lib/CIR/CodeGen/CIRGenCall.cpp
Line 347 in 3d16a0f
void CIRGenModule::constructAttributeList(StringRef Name, |
comparing to OG CodeGenModule::ConstructAttributeList
bcardosolopes
Metadata
Metadata
Assignees
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 tests