<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/mlir/include, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2020-03-06T13:36:11+00:00</updated>
<entry>
<title>[mlir] NFC: Rename index_t to index_type</title>
<updated>2020-03-06T13:36:11+00:00</updated>
<author>
<name>Rainer Orth</name>
<email>ro@CeBiTec.Uni-Bielefeld.DE</email>
</author>
<published>2020-01-18T21:10:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=edcd83a669b68a2d371a54dc46e647a2efe97a4f'/>
<id>urn:sha1:edcd83a669b68a2d371a54dc46e647a2efe97a4f</id>
<content type='text'>
mlir currently fails to build on Solaris:

  /vol/llvm/src/llvm-project/dist/mlir/lib/Conversion/VectorToLoops/ConvertVectorToLoops.cpp:78:20: error: reference to 'index_t' is ambiguous
    IndexHandle zero(index_t(0)), one(index_t(1));
                     ^
  /usr/include/sys/types.h:103:16: note: candidate found by name lookup is 'index_t'
  typedef short           index_t;
                          ^
  /vol/llvm/src/llvm-project/dist/mlir/include/mlir/EDSC/Builders.h:27:8: note: candidate found by name lookup is 'mlir::edsc::index_t'
  struct index_t {
         ^

and many more.

Given that POSIX reserves all identifiers ending in `_t` 2.2.2 The Name Space &lt;https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html&gt;, it seems
quite unwise to use such identifiers in user code, even more so without a distinguished
prefix.

The following patch fixes this by renaming `index_t` to `index_type`.
cases.

Tested on `amd64-pc-solaris2.11` and `sparcv9-sun-solaris2.11`.

Differential Revision: https://reviews.llvm.org/D72619

(cherry picked from commit 002ec79f979b9da9dedafe7ea036e00c90a9fbb7)
</content>
</entry>
<entry>
<title>[mlir] Fix compilation with VS2019.</title>
<updated>2020-01-23T00:16:18+00:00</updated>
<author>
<name>Alexandre Ganea</name>
<email>alexandre.ganea@ubisoft.com</email>
</author>
<published>2020-01-18T17:57:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=6c9da109c9cee54b494b03edbfd1648b685331c3'/>
<id>urn:sha1:6c9da109c9cee54b494b03edbfd1648b685331c3</id>
<content type='text'>
(cherry picked from commit e3d92b7442eaf3319f84bc060492df5b7ac3e9a1)
</content>
</entry>
<entry>
<title>Revert "[mlir] Create a gpu.module operation for the GPU Dialect."</title>
<updated>2020-01-16T12:55:05+00:00</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2020-01-15T16:51:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=ac446302ca4145cdc89f377c0c364c29ee303be5'/>
<id>urn:sha1:ac446302ca4145cdc89f377c0c364c29ee303be5</id>
<content type='text'>
This reverts commit 4624a1e8ac8a3f69cc887403b976f538f587744a. Causing
problems downstream.

(cherry picked from commit 0133cc60e4e230ee2c176c23eff5aa2f4ee17a75)
</content>
</entry>
<entry>
<title>[mlir][spirv] Properly support SPIR-V conversion target</title>
<updated>2020-01-15T00:18:42+00:00</updated>
<author>
<name>Lei Zhang</name>
<email>antiagainst@google.com</email>
</author>
<published>2020-01-14T23:23:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=47c6ab2b97773ee5fb360fc093a5824be64b8c68'/>
<id>urn:sha1:47c6ab2b97773ee5fb360fc093a5824be64b8c68</id>
<content type='text'>
This commit defines a new SPIR-V dialect attribute for specifying
a SPIR-V target environment. It is a dictionary attribute containing
the SPIR-V version, supported extension list, and allowed capability
list. A SPIRVConversionTarget subclass is created to take in the
target environment and sets proper dynmaically legal ops by querying
the op availability interface of SPIR-V ops to make sure they are
available in the specified target environment. All existing conversions
targeting SPIR-V is changed to use this SPIRVConversionTarget. It
probes whether the input IR has a `spv.target_env` attribute,
otherwise, it uses the default target environment: SPIR-V 1.0 with
Shader capability and no extra extensions.

Differential Revision: https://reviews.llvm.org/D72256
</content>
</entry>
<entry>
<title>[mlir] Refactor ModuleState into AsmState and expose it to users.</title>
<updated>2020-01-14T23:23:31+00:00</updated>
<author>
<name>River Riddle</name>
<email>riverriddle@google.com</email>
</author>
<published>2020-01-14T23:23:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=fa9dd8336bbd1167926f93fe2018d0c47839d5d6'/>
<id>urn:sha1:fa9dd8336bbd1167926f93fe2018d0c47839d5d6</id>
<content type='text'>
Summary:
This allows for users to cache printer state, which can be costly to recompute. Each of the IR print methods gain a new overload taking this new state class.

Depends On D72293

Reviewed By: jpienaar

Differential Revision: https://reviews.llvm.org/D72294
</content>
</entry>
<entry>
<title>[mlir][Linalg] Update the semantics, verifier and test for Linalg with tensors.</title>
<updated>2020-01-14T22:25:28+00:00</updated>
<author>
<name>Nicolas Vasilache</name>
<email>ntv@google.com</email>
</author>
<published>2020-01-11T07:22:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f52d71736b10e87b1aa1880b777dc9462a0085ce'/>
<id>urn:sha1:f52d71736b10e87b1aa1880b777dc9462a0085ce</id>
<content type='text'>
Summary:
This diff fixes issues with the semantics of linalg.generic on tensors that appeared when converting directly from HLO to linalg.generic.
The changes are self-contained within MLIR and can be captured and tested independently of XLA.

The linalg.generic and indexed_generic are updated to:

To allow progressive lowering from the value world (a.k.a tensor values) to
the buffer world (a.k.a memref values), a linalg.generic op accepts
mixing input and output ranked tensor values with input and output memrefs.

```
%1 = linalg.generic #trait_attribute %A, %B {other-attributes} :
  tensor&lt;?x?xf32&gt;,
  memref&lt;?x?xf32, stride_specification&gt;
  -&gt; (tensor&lt;?x?xf32&gt;)
```

In this case, the number of outputs (args_out) must match the sum of (1) the
number of output buffer operands and (2) the number of tensor return values.
The semantics is that the linalg.indexed_generic op produces (i.e.
allocates and fills) its return values.

Tensor values must be legalized by a buffer allocation pass before most
transformations can be applied. Such legalization moves tensor return values
into output buffer operands and updates the region argument accordingly.

Transformations that create control-flow around linalg.indexed_generic
operations are not expected to mix with tensors because SSA values do not
escape naturally. Still, transformations and rewrites that take advantage of
tensor SSA values are expected to be useful and will be added in the near
future.

Subscribers: bmahjour, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D72555
</content>
</entry>
<entry>
<title>[mlir] Create a gpu.module operation for the GPU Dialect.</title>
<updated>2020-01-14T11:05:47+00:00</updated>
<author>
<name>Tres Popp</name>
<email>tpopp@google.com</email>
</author>
<published>2020-01-14T10:09:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=4624a1e8ac8a3f69cc887403b976f538f587744a'/>
<id>urn:sha1:4624a1e8ac8a3f69cc887403b976f538f587744a</id>
<content type='text'>
Summary:
This is based on the use of code constantly checking for an attribute on
a model and instead represents the distinct operaion with a different
op. Instead, this op can be used to provide better filtering.

Reviewers: herhut, mravishankar, antiagainst, rriddle

Reviewed By: herhut, antiagainst, rriddle

Subscribers: liufengdb, aartbik, jholewinski, mgorny, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, csigg, arpith-jacob, mgester, lucyrfox, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D72336
</content>
</entry>
<entry>
<title>[mlir] Add loop.parallel, loop.reduce and loop.reduce.return operations.</title>
<updated>2020-01-14T10:35:41+00:00</updated>
<author>
<name>Adrian Kuegel</name>
<email>akuegel@google.com</email>
</author>
<published>2020-01-08T13:06:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=018b042593f007456b0695421942ec84ec816a30'/>
<id>urn:sha1:018b042593f007456b0695421942ec84ec816a30</id>
<content type='text'>
Summary:
These operations can be used to specify a loop nest with a body that can
contain reductions. The iteration space can be iterated in any order.

RFC: https://groups.google.com/a/tensorflow.org/d/topic/mlir/pwtSgiKFPis/discussion

Differential Revision: https://reviews.llvm.org/D72394
</content>
</entry>
<entry>
<title>[mlir] Add support for attaching a visibility to symbols.</title>
<updated>2020-01-14T00:10:13+00:00</updated>
<author>
<name>River Riddle</name>
<email>riverriddle@google.com</email>
</author>
<published>2020-01-13T23:54:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=9b92e4fbdb5bc4fdd21702e0ce104dfcac6a54a7'/>
<id>urn:sha1:9b92e4fbdb5bc4fdd21702e0ce104dfcac6a54a7</id>
<content type='text'>
Summary:
The visibility defines the structural reachability of the symbol within the IR. Symbols can define one of three visibilities:

* Public
The symbol \may be accessed from outside of the visible IR. We cannot assume that we can observe all of the uses of this symbol.

* Private
The symbol may only be referenced from within the operations in the current symbol table, via SymbolRefAttr.

* Nested
The symbol may be referenced by operations in symbol tables above the current symbol table, as long as each symbol table parent also defines a non-private symbol. This allows or referencing the symbol from outside of the defining symbol table, while retaining the ability for the compiler to see all uses.

These properties help to reason about the properties of a symbol, and will be used in a follow up to implement a dce pass on dead symbols.

A few examples of what this would look like in the IR are shown below:

  module @public_module {
    // This function can be accessed by 'live.user'
    func @nested_function() attributes { sym_visibility = "nested" }

    // This function cannot be accessed outside of 'public_module'
   func @private_function() attributes { sym_visibility = "private" }
  }

  // This function can only be accessed from within this module.
  func @private_function() attributes { sym_visibility = "private" }

  // This function may be referenced externally.
  func @public_function()

  "live.user"() {uses = [@public_module::@nested_function,
                                      @private_function,
                                      @public_function]} : () -&gt; ()

Depends On D72043

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D72044
</content>
</entry>
<entry>
<title>[mlir] Update the CallGraph for nested symbol references, and simplify CallableOpInterface</title>
<updated>2020-01-13T23:51:28+00:00</updated>
<author>
<name>River Riddle</name>
<email>riverriddle@google.com</email>
</author>
<published>2020-01-13T23:46:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=c7748404920b3674e79059cbbe73b6041a214444'/>
<id>urn:sha1:c7748404920b3674e79059cbbe73b6041a214444</id>
<content type='text'>
Summary:
This enables tracking calls that cross symbol table boundaries. It also simplifies some of the implementation details of CallableOpInterface, i.e. there can only be one region within the callable operation.

Depends On D72042

Reviewed By: jpienaar

Differential Revision: https://reviews.llvm.org/D72043
</content>
</entry>
</feed>
