• S
    Support Virtual Tuples and Memtuples in SlotGetAttrCodegen · c5e3aed4
    Shreedhar Hardikar 提交于
    We can avoid generating multiple versions of the slot_getattr. Once we
    deform any of the attributes in the tuples, we make it a virtual tuple.
    At code generation time, we know exactly how many need to be deformed
    and can in fact go ahead deform all the way. This way we don't need to
    worry about the case when slot_getattr is called on a virtual tuple with
    attnum > nvalid - that is deformation is partially complete.
    
    To enable this, we need to collect information from all the code
    generators that depend on SlotGetAttrCodegen before it is generated. We
    maintain a static map (keyed on the manager and the slot) to instances of
    SlotGetAttrCodegen. We also introduce a InitDependencies phase that
    happens before the GenerateCode phase, when dependants of
    SlotGetAttrCodegen can retrieve instances from the static map.
    c5e3aed4
exec_variable_list_codegen.h 3.6 KB