Goose  Diff

Differences From Artifact [e3eae90053]:

  • File bs/builtins/types/lower.cpp — part of check-in [11b6bc7f84] at 2024-01-03 22:20:25 on branch trunk — Added _LowerType extension point, called to decide what type to use when allocating locvars (user: zlodo size: 1339)

To Artifact [01687be979]:

  • File bs/builtins/types/lower.cpp — part of check-in [1793989d05] at 2024-02-09 18:05:28 on branch trunk — Lowering: completely reworked all lowering to happen in the same two unified extension points upstream of all three CIR consumers (user: zlodo size: 717)

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
        // Do nothing.
        RegisterBuiltinFunc< Intrinsic< Value ( Value ) > >( e, e.extLowerType(),
            []( const Context& c, const Value& v )
            {
                return v;
            } );

        // Default implementation of LowerTypeForVerification():
        // Do nothing.
        RegisterBuiltinFunc< Intrinsic< Value ( Value ) > >( e, e.extLowerTypeForVerification(),
            []( const Context& c, const Value& v )
            {
                return v;
            } );

        // Default implementation of LowerConstantForVerification():
        // Do nothing.
        RegisterBuiltinFunc< Intrinsic< Value ( Value ) > >( e, e.extLowerConstantForVerification(),
            []( const Context& c, const Value& v )
            {
                return v;
            } );

        // Default implementation of LowerConstantForRuntime():
        // Do nothing.
        RegisterBuiltinFunc< Intrinsic< Value ( Value ) > >( e, e.extLowerConstantForRuntime(),
            []( const Context& c, const Value& v )
            {
                return v;
            } );
    }
}







|

|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<






12
13
14
15
16
17
18
19
20
21
















22
23
24
25
26
27
        // Do nothing.
        RegisterBuiltinFunc< Intrinsic< Value ( Value ) > >( e, e.extLowerType(),
            []( const Context& c, const Value& v )
            {
                return v;
            } );

        // Default implementation of LowerValue():
        // Do nothing.
        RegisterBuiltinFunc< Intrinsic< Value ( Value ) > >( e, e.extLowerValue(),
















            []( const Context& c, const Value& v )
            {
                return v;
            } );
    }
}