#include "mlir/Interfaces/ControlFlowInterfaces.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/Dialect.h"
#include "mlir/IR/DialectImplementation.h"
#include "mlir/IR/OpDefinition.h"
#include "mlir/IR/OpImplementation.h"
#include "mlir/Parser/Parser.h"
#include <gtest/gtest.h>
usingnamespacemlir;
struct DummyOp : public Op<DummyOp, OpTrait::IsTerminator> { … };
struct MutuallyExclusiveRegionsOp
: public Op<MutuallyExclusiveRegionsOp, RegionBranchOpInterface::Trait> { … };
struct LoopRegionsOp
: public Op<LoopRegionsOp, RegionBranchOpInterface::Trait> { … };
struct DoubleLoopRegionsOp
: public Op<DoubleLoopRegionsOp, RegionBranchOpInterface::Trait> { … };
struct SequentialRegionsOp
: public Op<SequentialRegionsOp, RegionBranchOpInterface::Trait> { … };
struct CFTestDialect : Dialect { … };
TEST(RegionBranchOpInterface, MutuallyExclusiveOps) { … }
TEST(RegionBranchOpInterface, MutuallyExclusiveOps2) { … }
TEST(RegionBranchOpInterface, NotMutuallyExclusiveOps) { … }
TEST(RegionBranchOpInterface, NestedMutuallyExclusiveOps) { … }
TEST(RegionBranchOpInterface, RecursiveRegions) { … }
TEST(RegionBranchOpInterface, NotRecursiveRegions) { … }