I am part of a project developing content addressable memory. I am the 2nd author for a paper on this presented at MEMSYS 2023, and with additions likely to be accepted by ACM shortly. https://www.memsys.io/wp-content/uploads/2023/09/10.pdf
My role is to develop software to demonstrate the benefits of the hardware/memory. A part of that is implimenting language extensions to provide native support for content addressible memory. And then to modify some applications to utilize those extensions and demonstrate the value. We have already developed a C/C++ preprocessor, that is mostly functional, but are looking to move to altering some actual compilers. At this time this work is purely proof of the value proposition to content addressible memory. Presuming that our work proves valuable, that will provide an impetus for further works. Right now I am just focused on some means to deliver support. So I am looking for direction regarding how to easily extend gcc to provide support for content addressible memory. Basically I need to be able to tag variables as Content addressable, rather than normally addressed, and then change code generation for CA variables such that they reference memory by key rather than address. Is there a guide anywhere to developing language extensions for GCC and/or making changes to code generation ? I am a competent embedded software developer, with some ancient experience with compilers, but starting from scratch with GCC. Pointers would be appreicated. Help would be appreciated. While I am leading this part of the project, there is some funding available for assistance. Some recent languages have some form of content based addressing, but this is implimented by the CPU. We have altered the address logic of memory to alter the way an "address" is handled ushc that it can function as a key rather than a traditional linear address. We have demonstrated Sort in Memory with relatively simple changes to memory addressing logic, and we have extended the addressing capabilities to things like sparse array notation which has applications to AI. We are not looking to feed anything into the GCC distribution. But the software will be open source.