Goose  Diff

Differences From Artifact [7d6d8ce626]:

  • File bs/compile/compiler.cpp — part of check-in [0d5427d49b] at 2022-05-23 08:44:00 on branch cir-stack-language —
    • CIR instructions are now stored in lists
    • Execute: handle the stack
    • Converted some instructions to use the stack
    (user: zlodo size: 6021)

To Artifact [08238dce24]:

  • File bs/compile/compiler.cpp — part of check-in [7992dbe59f] at 2022-05-25 17:28:04 on branch cir-stack-language —
    • Split function invocation code into several specialized versions for each function kind
    • Almost fully completed the migration of CIR to a stack language
    • Compilation-time execution works again
    (user: zlodo size: 6065)

171
172
173
174
175
176
177

178

179
180
181
182
183
184
185
171
172
173
174
175
176
177
178

179
180
181
182
183
184
185
186







+
-
+







                            dm.emitErrorMessage( defRetVal->locationId(), "ambiguous default return value conversion." );
                            break;
                    }

                    return nullptr;
                }

                cfg->currentBB()->append( get< Value >( converted ) );
                cfg->emitTerminator( r->currentLocation(), cir::Ret( get< Value >( converted ) ) );
                cfg->emitTerminator( r->currentLocation(), cir::Ret() );
            }
        }

        // TODO_REENABLE_VERIFY
     /*   verify::Func fv( c, cfg, returnType );
        if( !fv.verify() )
            return nullptr;*/