-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use @llvm.memcpy.p0.p0.i64 instead of @llvm.memcpy.p0.p0.i32 #1031
Comments
I will spend some time on it.. |
I found the error..
|
Not sure that using |
@liusy58 good point, perhaps passing the type as i64 is enough to trigger the right type (we probably just need to figure out a rule of which one to use based on the CIR type in question) |
@bcardosolopes Sorry for my late response. I don't understand what you mean by saying |
My point is that sometimes it's not clear if we should generate i32 or i64 (e.g. for arrays it might use i32 and for structs i64, or the other way around - I don't remember, just one possible example). It's possible OG codegen does something that doesn't rely on the original type to decide, we'll need to figure out if right now we already have all the information to emit the right size or if we need to add more information to CIR operations. Does that make sense? |
Thank you. I will check later. By the way, what is OG codegen? |
The original LLVM codegen in lib/CodeGen |
See
clang/test/CIR/Lowering/store-memcpy.cpp
.Brief search in
mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
indicates there isn't a way to get it via the default operation, but I seemlir/test/Target/LLVMIR/omptarget-depend.mlir
generates it, perhaps they generate a direct call?The text was updated successfully, but these errors were encountered: