<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/llvm.git/mlir/docs/Tutorials, branch EmptyLineAfterFunctionDefinition</title>
<subtitle>github.com: llvm/llvm-project.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/'/>
<entry>
<title>[mlir][NFC] Replace references to Identifier with StringAttr</title>
<updated>2021-11-16T17:36:26+00:00</updated>
<author>
<name>River Riddle</name>
<email>riddleriver@gmail.com</email>
</author>
<published>2021-11-16T17:21:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=195730a6505ac352ae9347010ba701ab5267aad7'/>
<id>195730a6505ac352ae9347010ba701ab5267aad7</id>
<content type='text'>
This is part of the replacement of Identifier with StringAttr.

Differential Revision: https://reviews.llvm.org/D113953
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is part of the replacement of Identifier with StringAttr.

Differential Revision: https://reviews.llvm.org/D113953
</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR] Attribute and type formats in ODS</title>
<updated>2021-11-08T17:38:28+00:00</updated>
<author>
<name>Jeff Niu</name>
<email>jeffniu@google.com</email>
</author>
<published>2021-10-15T21:39:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=9a2fdc369dae21a6bb1d2145479a76d3775c980b'/>
<id>9a2fdc369dae21a6bb1d2145479a76d3775c980b</id>
<content type='text'>
Declarative attribute and type formats with assembly formats. Define an
`assemblyFormat` field in attribute and type defs with a `mnemonic` to
generate a parser and printer.

```tablegen
def MyAttr : AttrDef&lt;MyDialect, "MyAttr"&gt; {
  let parameters = (ins "int64_t":$count, "AffineMap":$map);
  let mnemonic = "my_attr";
  let assemblyFormat = "`&lt;` $count `,` $map `&gt;`";
}
```

Use `struct` to define a comma-separated list of key-value pairs:

```tablegen
def MyType : TypeDef&lt;MyDialect, "MyType"&gt; {
  let parameters = (ins "int":$one, "int":$two, "int":$three);
  let mnemonic = "my_attr";
  let assemblyFormat = "`&lt;` $three `:` struct($one, $two) `&gt;`";
}
```

Use `struct(*)` to capture all parameters.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D111594
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Declarative attribute and type formats with assembly formats. Define an
`assemblyFormat` field in attribute and type defs with a `mnemonic` to
generate a parser and printer.

```tablegen
def MyAttr : AttrDef&lt;MyDialect, "MyAttr"&gt; {
  let parameters = (ins "int64_t":$count, "AffineMap":$map);
  let mnemonic = "my_attr";
  let assemblyFormat = "`&lt;` $count `,` $map `&gt;`";
}
```

Use `struct` to define a comma-separated list of key-value pairs:

```tablegen
def MyType : TypeDef&lt;MyDialect, "MyType"&gt; {
  let parameters = (ins "int":$one, "int":$two, "int":$three);
  let mnemonic = "my_attr";
  let assemblyFormat = "`&lt;` $three `:` struct($one, $two) `&gt;`";
}
```

Use `struct(*)` to capture all parameters.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D111594
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir:DialectConversion] Restructure how argument/target materializations get invoked</title>
<updated>2021-10-27T02:09:04+00:00</updated>
<author>
<name>River Riddle</name>
<email>riddleriver@gmail.com</email>
</author>
<published>2021-10-27T02:00:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=015192c63415ae828c3a9bc8b56d0667abcca8ae'/>
<id>015192c63415ae828c3a9bc8b56d0667abcca8ae</id>
<content type='text'>
The current implementation invokes materializations
whenever an input operand does not have a mapping for the
desired type, i.e. it requires materialization at the earliest possible
point. This conflicts with goal of dialect conversion (and also the
current documentation) which states that a materialization is only
required if the materialization is supposed to persist after the
conversion process has finished.

This revision refactors this such that whenever a target
materialization "might" be necessary, we insert an
unrealized_conversion_cast to act as a temporary materialization.
This allows for deferring the invocation of the user
materialization hooks until the end of the conversion process,
where we actually have a better sense if it's actually
necessary. This has several benefits:

* In some cases a target materialization hook is no longer
   necessary
When performing a full conversion, there are some situations
where a temporary materialization is necessary. Moving forward,
these users won't need to provide any target materializations,
as the temporary materializations do not require the user to
provide materialization hooks.

* getRemappedValue can now handle values that haven't been
   converted yet
Before this commit, it wasn't well supported to get the remapped
value of a value that hadn't been converted yet (making it
difficult/impossible to convert multiple operations in many
situations). This commit updates getRemappedValue to properly
handle this case by inserting temporary materializations when
necessary.

Another code-health related benefit is that with this change we
can move a majority of the complexity related to materializations
to the end of the conversion process, instead of handling adhoc
while conversion is happening.

Differential Revision: https://reviews.llvm.org/D111620
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current implementation invokes materializations
whenever an input operand does not have a mapping for the
desired type, i.e. it requires materialization at the earliest possible
point. This conflicts with goal of dialect conversion (and also the
current documentation) which states that a materialization is only
required if the materialization is supposed to persist after the
conversion process has finished.

This revision refactors this such that whenever a target
materialization "might" be necessary, we insert an
unrealized_conversion_cast to act as a temporary materialization.
This allows for deferring the invocation of the user
materialization hooks until the end of the conversion process,
where we actually have a better sense if it's actually
necessary. This has several benefits:

* In some cases a target materialization hook is no longer
   necessary
When performing a full conversion, there are some situations
where a temporary materialization is necessary. Moving forward,
these users won't need to provide any target materializations,
as the temporary materializations do not require the user to
provide materialization hooks.

* getRemappedValue can now handle values that haven't been
   converted yet
Before this commit, it wasn't well supported to get the remapped
value of a value that hadn't been converted yet (making it
difficult/impossible to convert multiple operations in many
situations). This commit updates getRemappedValue to properly
handle this case by inserting temporary materializations when
necessary.

Another code-health related benefit is that with this change we
can move a majority of the complexity related to materializations
to the end of the conversion process, instead of handling adhoc
while conversion is happening.

Differential Revision: https://reviews.llvm.org/D111620
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][docs] Fix name of get arith-&gt;LLVM patterns in docs</title>
<updated>2021-10-18T16:04:17+00:00</updated>
<author>
<name>Mogball</name>
<email>jeffniu22@gmail.com</email>
</author>
<published>2021-10-18T16:04:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=4a5ff56b1492693317162a2db6b39ffbbb8a6f15'/>
<id>4a5ff56b1492693317162a2db6b39ffbbb8a6f15</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR] Replace std ops with arith dialect ops</title>
<updated>2021-10-13T03:07:03+00:00</updated>
<author>
<name>Mogball</name>
<email>jeffniu22@gmail.com</email>
</author>
<published>2021-10-12T23:14:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=a54f4eae0e1d0ef5adccdcf9f6c2b518dc1101aa'/>
<id>a54f4eae0e1d0ef5adccdcf9f6c2b518dc1101aa</id>
<content type='text'>
Precursor: https://reviews.llvm.org/D110200

Removed redundant ops from the standard dialect that were moved to the
`arith` or `math` dialects.

Renamed all instances of operations in the codebase and in tests.

Reviewed By: rriddle, jpienaar

Differential Revision: https://reviews.llvm.org/D110797
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Precursor: https://reviews.llvm.org/D110200

Removed redundant ops from the standard dialect that were moved to the
`arith` or `math` dialects.

Renamed all instances of operations in the codebase and in tests.

Reviewed By: rriddle, jpienaar

Differential Revision: https://reviews.llvm.org/D110797
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][docs] A friendlier improvement for the Toy tutorial chapter 4.</title>
<updated>2021-08-25T00:44:51+00:00</updated>
<author>
<name>Chenggang Zhao</name>
<email>lyricz@yeah.net</email>
</author>
<published>2021-08-25T00:41:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=2b2c13e672bdbf812b8bb47f0575e534b3c9c8c6'/>
<id>2b2c13e672bdbf812b8bb47f0575e534b3c9c8c6</id>
<content type='text'>
Add notes for discarding private-visible functions in the Toy tutorial chapter 4.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D108026
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add notes for discarding private-visible functions in the Toy tutorial chapter 4.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D108026
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Set the namespace of the BuiltinDialect to 'builtin'</title>
<updated>2021-07-28T21:00:10+00:00</updated>
<author>
<name>River Riddle</name>
<email>riddleriver@gmail.com</email>
</author>
<published>2021-07-28T20:32:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=f8479d9de59d0f2f3997319b0ec189eb086aa85a'/>
<id>f8479d9de59d0f2f3997319b0ec189eb086aa85a</id>
<content type='text'>
Historically the builtin dialect has had an empty namespace. This has unfortunately created a very awkward situation, where many utilities either have to special case the empty namespace, or just don't work at all right now. This revision adds a namespace to the builtin dialect, and starts to cleanup some of the utilities to no longer handle empty namespaces. For now, the assembly form of builtin operations does not require the `builtin.` prefix. (This should likely be re-evaluated though)

Differential Revision: https://reviews.llvm.org/D105149
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Historically the builtin dialect has had an empty namespace. This has unfortunately created a very awkward situation, where many utilities either have to special case the empty namespace, or just don't work at all right now. This revision adds a namespace to the builtin dialect, and starts to cleanup some of the utilities to no longer handle empty namespaces. For now, the assembly form of builtin operations does not require the `builtin.` prefix. (This should likely be re-evaluated though)

Differential Revision: https://reviews.llvm.org/D105149
</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR] Fix documentation of the `ExecutionEngine` in the toy tutorial example</title>
<updated>2021-07-13T11:23:43+00:00</updated>
<author>
<name>Frederik Gossen</name>
<email>frgossen@google.com</email>
</author>
<published>2021-07-12T13:38:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=9c90725eaee5a00e5dd450e51c4070afd7081472'/>
<id>9c90725eaee5a00e5dd450e51c4070afd7081472</id>
<content type='text'>
Differential Revision: https://reviews.llvm.org/D105813
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Differential Revision: https://reviews.llvm.org/D105813
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix typo in Toy Tutorial Ch-4</title>
<updated>2021-06-23T03:33:34+00:00</updated>
<author>
<name>Jack Xia</name>
<email>cijie@ualberta.ca</email>
</author>
<published>2021-06-23T03:17:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=4666f309df8bffa602d055f8ccd2bc93d1a24888'/>
<id>4666f309df8bffa602d055f8ccd2bc93d1a24888</id>
<content type='text'>
multiple_transpose -&gt; multiply_transpose</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
multiple_transpose -&gt; multiply_transpose</pre>
</div>
</content>
</entry>
<entry>
<title>Fix typo in Toy tutorial Ch1</title>
<updated>2021-06-09T16:09:01+00:00</updated>
<author>
<name>Pavel Krajcevski</name>
<email>krajcevski@google.com</email>
</author>
<published>2021-06-09T16:07:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=acc3ca3b7a08dc8d2690953af41a82652bb4f73b'/>
<id>acc3ca3b7a08dc8d2690953af41a82652bb4f73b</id>
<content type='text'>
This aligns the website with the actual test case in the repo.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D84193
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This aligns the website with the actual test case in the repo.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D84193
</pre>
</div>
</content>
</entry>
</feed>
