dibyendumajumdar / dmr_c

dmr_C is a C parser and JIT compiler with LLVM, Eclipse OMR and NanoJIT backends
Other
52 stars 2 forks source link

Missing liveness information causes stack being over-written #22

Closed dibyendumajumdar closed 7 years ago

dibyendumajumdar commented 7 years ago

It seems that allocas need to have liveness information added else when NanoJIT's spills registers it may overwrite stack slots.

There are two situations: 1) Phi instructions generate allocas - these should be handled when a jump goes back to a prior block. Any phi related allocas in the target block must be marked live. 2) For allocas arising from local var declarations that were not converted to pseudos, we can add liveness instructions for all the allocas, as we do not have better information at present.

dibyendumajumdar commented 7 years ago

Fixed in 0.2