Class JitInputVar

All Implemented Interfaces:
JitVal, JitVar, JitVarnodeVar

public class JitInputVar extends AbstractJitVarnodeVar
A p-code variable that is an input to a passage, i.e., there are reads possible before writes.

These only appear as options to a phi node. They are very common, because any block that is also a valid passage entry (which is most of them) can have an option that is defined outside the passage. It may very well be the only option.

Implementation Notes:
We delay creation of passage-input variables until inter-block analysis, because the variable must turn up missing (i.e., not be defined prior in the same block) before we can consider it might be a passage input. We thus create a phi node for it and record the input as just one of many options. We had at one point "simplified" single-option phi nodes, which covered the case where the varnode is certainly a passage input, but we found it difficult in terms of bookkeeping. Also, because of our variable allocation strategy, such simplification offered no real value during code generation.
  • Constructor Details