forked from OSchip/llvm-project
Add ODS accessors for named regions.
PiperOrigin-RevId: 256639471
This commit is contained in:
parent
75ae06acf3
commit
8c6a3ace16
|
@ -23,6 +23,7 @@ def NS_AOp : NS_Op<"a_op", [NoSideEffect]> {
|
|||
Variadic<F32>:$s
|
||||
);
|
||||
|
||||
let regions = (region AnyRegion:$someRegion);
|
||||
let builders = [OpBuilder<"Value *val">];
|
||||
let parser = [{ foo }];
|
||||
let printer = [{ bar }];
|
||||
|
@ -59,6 +60,7 @@ def NS_AOp : NS_Op<"a_op", [NoSideEffect]> {
|
|||
// CHECK: Operation::operand_range b();
|
||||
// CHECK: Operation::result_range getODSResults(unsigned index);
|
||||
// CHECK: Value *r();
|
||||
// CHECK: Region &someRegion();
|
||||
// CHECK: APInt attr1();
|
||||
// CHECK: Optional< APFloat > attr2();
|
||||
// CHECK: static void build(Value *val);
|
||||
|
|
|
@ -469,6 +469,9 @@ private:
|
|||
// Generates getters for named results.
|
||||
void genNamedResultGetters();
|
||||
|
||||
// Generates getters for named regions.
|
||||
void genNamedRegionGetters();
|
||||
|
||||
// Generates builder method for the operation.
|
||||
void genBuilder();
|
||||
|
||||
|
@ -536,6 +539,7 @@ OpEmitter::OpEmitter(const Operator &op)
|
|||
genOpNameGetter();
|
||||
genNamedOperandGetters();
|
||||
genNamedResultGetters();
|
||||
genNamedRegionGetters();
|
||||
genAttrGetters();
|
||||
genBuilder();
|
||||
genParser();
|
||||
|
@ -721,6 +725,17 @@ void OpEmitter::genNamedResultGetters() {
|
|||
}
|
||||
}
|
||||
|
||||
void OpEmitter::genNamedRegionGetters() {
|
||||
unsigned numRegions = op.getNumRegions();
|
||||
for (unsigned i = 0; i < numRegions; ++i) {
|
||||
const auto ®ion = op.getRegion(i);
|
||||
if (!region.name.empty()) {
|
||||
auto &m = opClass.newMethod("Region &", region.name);
|
||||
m.body() << formatv("return this->getOperation()->getRegion({0});", i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OpEmitter::genStandaloneParamBuilder(bool useOperandType,
|
||||
bool useAttrType) {
|
||||
if (useOperandType && useAttrType) {
|
||||
|
|
Loading…
Reference in New Issue