I guess in most cases these objects are short lived and maybe even some partially constant propagated if all inline, but couldn't you elide the offset field for a small performance gain? I.e., replace
struct Blob{T}
base::Ptr{Nothing}
offset::Int64
limit::Int64
end
With
struct Blob{T}
base::Ptr{Nothing}
limit::Ptr{Nothing} # one past end of range
end
I guess in most cases these objects are short lived and maybe even some partially constant propagated if all inline, but couldn't you elide the offset field for a small performance gain? I.e., replace
With