The IO Visor <https://www.iovisor.org/> project appears to be doing something like this with LLVM and JIT constructs to dynamically insert code into the kernel in a platform-independent manner. Perhaps we can leverage that technology?
Bill On Mon, Nov 9, 2015 at 4:33 PM, Jim Wilson <jim.wil...@linaro.org> wrote: > On Fri, Nov 6, 2015 at 6:48 AM, Zoltan Kiss <zoltan.k...@linaro.org> > wrote: > > I've checked link time optimization (-flto), but it only helps with > static > > linking. Is there any way to keep the ODP application and platform > > implementation binaries in separate files while having the performance > > benefit of inlining? > > I haven't been able to think of a good way to do this, and apparently > no one else has either. > > There is a not so good way to do it. You could distribute relocatable > link (i.e. ld -r) output instead of executables and shared libraries, > and then do the final LTO compile and link at run-time. This just > creates a new set of problems though. There would be a long delay for > the LTO compile and link before you start routing packets which would > be inconvenient. It would be better to do the LTO compile and link > just once and reuse the binary, but then you have the problem of where > do you put the binary and how do you give it proper owner and group > permissions. There may also be issues with using ld -r with LTO. You > probably don't want this mess. > > Otherwise, you need some kind of JIT or rewritable code scheme to redo > compiler optimizations at run-time, and we don't have that technology, > at least not with gcc. I don't know if LLVM has any useful feature > here. > > Jim > _______________________________________________ > lng-odp mailing list > lng-...@lists.linaro.org > https://lists.linaro.org/mailman/listinfo/lng-odp >
_______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-toolchain