Supporting precise garbage collection in Java Bytecode-to-C ahead-of-time compiler for embedded systems