Hi, all I'm new here so I hope I'm not breaching etiquette or posting in the wrong list, if so please redirect me.<div><br></div><div>I'm a student studying the LLVM JIT-Interpreter source and i have a question:</div>
<div><br></div><div>where and how is the switch/mapping from infinite register IR to native arch dependent register set managed, to preserve the program state, during jumps from the Interpreter to the JIT and vice versa?</div>
<div><br></div><div>all i can tell currently is that it happens in ExecutionEngine somewhere using these methods, but i cant find their wrapper, the one that would use these and say "now map everything and switch state" and somehow pass that mapping to the JIT and backwards.</div>
<div>emitGlobals(), EmitGlobalVariable(), llvm::JIT::getOrEmitGlobalVariable() llvm::ExecutionEngineState::getGlobalAddressMap(), llvm::ExecutionEngineState::getGlobalAddressReverseMap()</div><div><br></div><div>I hope I'm not misguided by an incorrect understanding of the JIT architecture, in any case any links to documentation, Doxygen tree, etc are absolutely welcome</div>
<div><br></div><div>thanks, </div><div>(and thanks for all of LLVM actually :) )</div><div>Antonis</div>