[llvm-dev] RFC: Harvard architectures and default address spaces

David Chisnall via llvm-dev llvm-dev at lists.llvm.org
Wed Jul 12 08:26:26 PDT 2017


On 11 Jul 2017, at 23:18, Dylan McKay via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> > Add this information to DataLayout and to use that information in relevant places.
> 
> This sounds like a much better/cleaner idea, thanks!

I’d suggest taking a look at the alloca address space changes, which were recently added based on a cleaned-up version of our code.  We have a similar issue (function and data pointers have the same representation for us, but casting requires different handling[1]) and have considered adding address spaces to functions.

David

[1] Probably not relevant for this discussion, but if anyone cares: in our world we have 128-bit fat pointers contain base, bounds and permissions, and that 64-bit pointers that are implicitly relative to one of two special fat pointer registers, one for code and one for data.  We must therefore handle 64-bit to 128-bit pointer casts differently depending on whether we’re casting code or data pointers.  We currently do this with some fairly ugly hacks, but being able to put all functions in a different AS would make this much easier for us.


More information about the llvm-dev mailing list