LLVM: change commentary on isByRef

This branch originally started out as a potential workaround to
address #11450. It did not solve that problem, however, it did end
up fixing #11498!
This commit is contained in:
Andrew Kelley 2022-07-19 11:31:37 -07:00
parent 74fb65fb42
commit fe8c3ffeb1

View File

@ -9356,11 +9356,11 @@ fn ccAbiPromoteInt(
return null;
}
/// This is the one source of truth for whether a type is passed around as an LLVM pointer,
/// or as an LLVM value.
fn isByRef(ty: Type) bool {
// For tuples and structs, if there are more than this many non-void
// fields, then we make it byref, otherwise byval.
// TODO we actually want to set this to 2, however it is tripping an LLVM 14 regression:
// https://github.com/llvm/llvm-project/issues/56585
const max_fields_byval = 0;
switch (ty.zigTypeTag()) {
@ -9421,10 +9421,6 @@ fn isByRef(ty: Type) bool {
return false;
}
return true;
// TODO we actually want this logic:
// however it is tripping an LLVM 14 regression:
// https://github.com/llvm/llvm-project/issues/56585
//return isByRef(payload_ty);
},
.Optional => {
var buf: Type.Payload.ElemType = undefined;
@ -9436,10 +9432,6 @@ fn isByRef(ty: Type) bool {
return false;
}
return true;
// TODO we actually want this logic:
// however it is tripping an LLVM 14 regression:
// https://github.com/llvm/llvm-project/issues/56585
//return isByRef(payload_ty);
},
}
}