Skip to content

Commit 3ada774

Browse files
committed
Revert "Add a structured if operation (llvm#67234)"
This reverts commit 126f037. Reverting due to bot failures.
1 parent 1529754 commit 3ada774

File tree

15 files changed

+42
-655
lines changed

15 files changed

+42
-655
lines changed

mlir/docs/Dialects/emitc.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ translating the following operations:
3333
* `func.return`
3434
* 'scf' Dialect
3535
* `scf.for`
36+
* `scf.if`
3637
* `scf.yield`
3738
* 'arith' Dialect
3839
* `arith.constant`

mlir/include/mlir/Conversion/Passes.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
#include "mlir/Conversion/PDLToPDLInterp/PDLToPDLInterp.h"
4949
#include "mlir/Conversion/ReconcileUnrealizedCasts/ReconcileUnrealizedCasts.h"
5050
#include "mlir/Conversion/SCFToControlFlow/SCFToControlFlow.h"
51-
#include "mlir/Conversion/SCFToEmitC/SCFToEmitC.h"
5251
#include "mlir/Conversion/SCFToGPU/SCFToGPUPass.h"
5352
#include "mlir/Conversion/SCFToOpenMP/SCFToOpenMP.h"
5453
#include "mlir/Conversion/SCFToSPIRV/SCFToSPIRVPass.h"

mlir/include/mlir/Conversion/Passes.td

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -931,16 +931,6 @@ def ConvertParallelLoopToGpu : Pass<"convert-parallel-loops-to-gpu"> {
931931
let dependentDialects = ["affine::AffineDialect", "gpu::GPUDialect"];
932932
}
933933

934-
//===----------------------------------------------------------------------===//
935-
// SCFToEmitC
936-
//===----------------------------------------------------------------------===//
937-
938-
def SCFToEmitC : Pass<"convert-scf-to-emitc"> {
939-
let summary = "Convert SCF dialect to EmitC dialect, maintaining structured"
940-
" control flow";
941-
let dependentDialects = ["emitc::EmitCDialect"];
942-
}
943-
944934
//===----------------------------------------------------------------------===//
945935
// ShapeToStandard
946936
//===----------------------------------------------------------------------===//

mlir/include/mlir/Conversion/SCFToEmitC/SCFToEmitC.h

Lines changed: 0 additions & 29 deletions
This file was deleted.

mlir/include/mlir/Dialect/EmitC/IR/EmitC.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,15 @@
1414
#define MLIR_DIALECT_EMITC_IR_EMITC_H
1515

1616
#include "mlir/Bytecode/BytecodeOpInterface.h"
17-
#include "mlir/IR/Builders.h"
1817
#include "mlir/IR/BuiltinOps.h"
1918
#include "mlir/IR/BuiltinTypes.h"
2019
#include "mlir/IR/Dialect.h"
2120
#include "mlir/Interfaces/CastInterfaces.h"
22-
#include "mlir/Interfaces/ControlFlowInterfaces.h"
2321
#include "mlir/Interfaces/SideEffectInterfaces.h"
2422

2523
#include "mlir/Dialect/EmitC/IR/EmitCDialect.h.inc"
2624
#include "mlir/Dialect/EmitC/IR/EmitCEnums.h.inc"
2725

28-
namespace mlir {
29-
namespace emitc {
30-
void buildTerminatedBody(OpBuilder &builder, Location loc);
31-
} // namespace emitc
32-
} // namespace mlir
33-
3426
#define GET_ATTRDEF_CLASSES
3527
#include "mlir/Dialect/EmitC/IR/EmitCAttributes.h.inc"
3628

mlir/include/mlir/Dialect/EmitC/IR/EmitC.td

Lines changed: 0 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ include "mlir/Dialect/EmitC/IR/EmitCAttributes.td"
1717
include "mlir/Dialect/EmitC/IR/EmitCTypes.td"
1818

1919
include "mlir/Interfaces/CastInterfaces.td"
20-
include "mlir/Interfaces/ControlFlowInterfaces.td"
2120
include "mlir/Interfaces/SideEffectInterfaces.td"
2221

2322
//===----------------------------------------------------------------------===//
@@ -403,102 +402,4 @@ def EmitC_VariableOp : EmitC_Op<"variable", []> {
403402
let hasVerifier = 1;
404403
}
405404

406-
def EmitC_AssignOp : EmitC_Op<"assign", []> {
407-
let summary = "Assign operation";
408-
let description = [{
409-
The `assign` operation stores an SSA value to the location designated by an
410-
EmitC variable. This operation doesn't return any value. The assigned value
411-
must be of the same type as the variable being assigned. The operation is
412-
emitted as a C/C++ '=' operator.
413-
414-
Example:
415-
416-
```mlir
417-
// Integer variable
418-
%0 = "emitc.variable"(){value = 42 : i32} : () -> i32
419-
%1 = emitc.call "foo"() : () -> (i32)
420-
421-
// Assign emitted as `... = ...;`
422-
"emitc.assign"(%0, %1) : (i32, i32) -> ()
423-
```
424-
}];
425-
426-
let arguments = (ins AnyType:$var, AnyType:$value);
427-
let results = (outs);
428-
429-
let hasVerifier = 1;
430-
let assemblyFormat = "$value `:` type($value) `to` $var `:` type($var) attr-dict";
431-
}
432-
433-
def EmitC_YieldOp : EmitC_Op<"yield", [Pure, Terminator, ParentOneOf<["IfOp"]>]> {
434-
let summary = "block termination operation";
435-
let description = [{
436-
"yield" terminates blocks within EmitC control-flow operations. Since
437-
control-flow constructs in C do not return values, this operation doesn't
438-
take any arguments.
439-
}];
440-
441-
let arguments = (ins);
442-
let builders = [OpBuilder<(ins), [{ /* nothing to do */ }]>];
443-
444-
let assemblyFormat = [{ attr-dict }];
445-
}
446-
447-
def EmitC_IfOp : EmitC_Op<"if",
448-
[DeclareOpInterfaceMethods<RegionBranchOpInterface, [
449-
"getNumRegionInvocations", "getRegionInvocationBounds",
450-
"getEntrySuccessorRegions"]>, SingleBlock,
451-
SingleBlockImplicitTerminator<"emitc::YieldOp">,
452-
RecursiveMemoryEffects, NoRegionArguments]> {
453-
let summary = "if-then-else operation";
454-
let description = [{
455-
The `if` operation represents an if-then-else construct for
456-
conditionally executing two regions of code. The operand to an if operation
457-
is a boolean value. For example:
458-
459-
```mlir
460-
emitc.if %b {
461-
...
462-
} else {
463-
...
464-
}
465-
```
466-
467-
The "then" region has exactly 1 block. The "else" region may have 0 or 1
468-
blocks. The blocks are always terminated with `emitc.yield`, which can be
469-
left out to be inserted implicitly. This operation doesn't produce any
470-
results.
471-
}];
472-
let arguments = (ins I1:$condition);
473-
let results = (outs);
474-
let regions = (region SizedRegion<1>:$thenRegion,
475-
MaxSizedRegion<1>:$elseRegion);
476-
477-
let skipDefaultBuilders = 1;
478-
let builders = [
479-
OpBuilder<(ins "Value":$cond)>,
480-
OpBuilder<(ins "Value":$cond, "bool":$addThenBlock, "bool":$addElseBlock)>,
481-
OpBuilder<(ins "Value":$cond, "bool":$withElseRegion)>,
482-
OpBuilder<(ins "Value":$cond,
483-
CArg<"function_ref<void(OpBuilder &, Location)>",
484-
"buildTerminatedBody">:$thenBuilder,
485-
CArg<"function_ref<void(OpBuilder &, Location)>",
486-
"nullptr">:$elseBuilder)>,
487-
];
488-
489-
let extraClassDeclaration = [{
490-
OpBuilder getThenBodyBuilder(OpBuilder::Listener *listener = nullptr) {
491-
Block* body = getBody(0);
492-
return OpBuilder::atBlockEnd(body, listener);
493-
}
494-
OpBuilder getElseBodyBuilder(OpBuilder::Listener *listener = nullptr) {
495-
Block* body = getBody(1);
496-
return OpBuilder::atBlockEnd(body, listener);
497-
}
498-
Block* thenBlock();
499-
Block* elseBlock();
500-
}];
501-
let hasCustomAssemblyFormat = 1;
502-
}
503-
504405
#endif // MLIR_DIALECT_EMITC_IR_EMITC

mlir/lib/Conversion/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ add_subdirectory(OpenMPToLLVM)
3838
add_subdirectory(PDLToPDLInterp)
3939
add_subdirectory(ReconcileUnrealizedCasts)
4040
add_subdirectory(SCFToControlFlow)
41-
add_subdirectory(SCFToEmitC)
4241
add_subdirectory(SCFToGPU)
4342
add_subdirectory(SCFToOpenMP)
4443
add_subdirectory(SCFToSPIRV)

mlir/lib/Conversion/SCFToEmitC/CMakeLists.txt

Lines changed: 0 additions & 18 deletions
This file was deleted.

mlir/lib/Conversion/SCFToEmitC/SCFToEmitC.cpp

Lines changed: 0 additions & 130 deletions
This file was deleted.

0 commit comments

Comments
 (0)