Goose  Diff

Differences From Artifact [9f07bf6438]:

  • File bs/cir/not.h — part of check-in [dd5c48041c] at 2022-05-26 11:31:44 on branch cir-stack-language — Re-enabled codegen and related tests, and adapted it to the now stack-based CIR language (user: zlodo size: 551)

To Artifact [de51af2458]:

  • File bs/cir/not.h — part of check-in [b4d5bdf6ec] at 2022-06-18 18:51:47 on branch cir-stack-language —
    • Added a location id to all CIR instructions (needed with the stack based approach to locate intermediate results)
    • Fixed a bunch of verifier errors
    • Re-enabled most verifier tests, other than some requiring to re-implement a few more bits
    (user: zlodo size: 655)

1
2
3
4
5
6
7
8




9
10
11
12
13
14
15
#ifndef GOOSE_CIR_NOT_H
#define GOOSE_CIR_NOT_H

namespace goose::cir
{
    class Not
    {
        public:




            bool canBeExecuted() const { return true; }
            bool canBeEagerlyEvaluated() const { return true; }
            bool haveSideEffects() const { return false; }

            bool operator<( const Not& rhs ) const
            {
                return false;





|


>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef GOOSE_CIR_NOT_H
#define GOOSE_CIR_NOT_H

namespace goose::cir
{
    class Not : public BaseInstr
    {
        public:
            Not( LocationId loc ) :
                BaseInstr( loc )
            {}

            bool canBeExecuted() const { return true; }
            bool canBeEagerlyEvaluated() const { return true; }
            bool haveSideEffects() const { return false; }

            bool operator<( const Not& rhs ) const
            {
                return false;