aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/llvm.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen/llvm.zig')
-rw-r--r--src/codegen/llvm.zig6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index a6ea6255e3..34203b9536 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -725,8 +725,12 @@ pub const Object = struct {
try args.append(param);
if (param_ty.isPtrAtRuntime()) {
- // TODO noalias attribute
const ptr_info = param_ty.ptrInfo().data;
+ if (math.cast(u5, it.zig_index - 1)) |i| {
+ if (@truncate(u1, fn_info.noalias_bits >> i) != 0) {
+ dg.addArgAttr(llvm_func, llvm_arg_i, "noalias");
+ }
+ }
if (!param_ty.isPtrLikeOptional() and !ptr_info.@"allowzero") {
dg.addArgAttr(llvm_func, llvm_arg_i, "nonnull");
}