<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/mlir/test/lib/TestDialect, 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-01-14T13:06:37+00:00</updated>
<entry>
<title>Make helper functions static or move them into anonymous namespaces.  NFC.</title>
<updated>2020-01-14T13:06:37+00:00</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2020-01-14T13:06:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=df186507e1d07c3ddba091a076ba7a33dbdc5867'/>
<id>urn:sha1:df186507e1d07c3ddba091a076ba7a33dbdc5867</id>
<content type='text'>
</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>
<entry>
<title>[mlir] NFC: Remove Value::operator* and Value::operator-&gt; now that Value is properly value-typed.</title>
<updated>2020-01-11T16:54:39+00:00</updated>
<author>
<name>River Riddle</name>
<email>riverriddle@google.com</email>
</author>
<published>2020-01-11T16:54:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=2bdf33cc4c733342fc83081bc7410ac5e9a24f55'/>
<id>urn:sha1:2bdf33cc4c733342fc83081bc7410ac5e9a24f55</id>
<content type='text'>
Summary: These were temporary methods used to simplify the transition.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D72548
</content>
</entry>
<entry>
<title>NFC: Replace ValuePtr with Value and remove it now that Value is value-typed.</title>
<updated>2019-12-24T00:36:53+00:00</updated>
<author>
<name>River Riddle</name>
<email>riverriddle@google.com</email>
</author>
<published>2019-12-23T22:45:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=e62a69561fb9d7b1013d2853da68d79a7907fead'/>
<id>urn:sha1:e62a69561fb9d7b1013d2853da68d79a7907fead</id>
<content type='text'>
ValuePtr was a temporary typedef during the transition to a value-typed Value.

PiperOrigin-RevId: 286945714
</content>
</entry>
<entry>
<title>Adjust License.txt file to use the LLVM license</title>
<updated>2019-12-23T23:33:37+00:00</updated>
<author>
<name>Mehdi Amini</name>
<email>aminim@google.com</email>
</author>
<published>2019-12-23T17:35:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=56222a0694e4caf35e892d70591417c39fef1185'/>
<id>urn:sha1:56222a0694e4caf35e892d70591417c39fef1185</id>
<content type='text'>
PiperOrigin-RevId: 286906740
</content>
</entry>
<entry>
<title>NFC: Introduce new ValuePtr/ValueRef typedefs to simplify the transition to Value being value-typed.</title>
<updated>2019-12-23T06:00:23+00:00</updated>
<author>
<name>River Riddle</name>
<email>riverriddle@google.com</email>
</author>
<published>2019-12-23T05:59:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=35807bc4c5c9d8abc31ba0b2f955a82abf276e12'/>
<id>urn:sha1:35807bc4c5c9d8abc31ba0b2f955a82abf276e12</id>
<content type='text'>
This is an initial step to refactoring the representation of OpResult as proposed in: https://groups.google.com/a/tensorflow.org/g/mlir/c/XXzzKhqqF_0/m/v6bKb08WCgAJ

This change will make it much simpler to incrementally transition all of the existing code to use value-typed semantics.

PiperOrigin-RevId: 286844725
</content>
</entry>
<entry>
<title>Allow dialect to create friendly names for region arguments</title>
<updated>2019-12-20T06:16:07+00:00</updated>
<author>
<name>Frank Laub</name>
<email>frank.laub@intel.com</email>
</author>
<published>2019-12-20T06:15:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=7811ad3c2b312fb5eda5ed5f3a1d15b8e6085b24'/>
<id>urn:sha1:7811ad3c2b312fb5eda5ed5f3a1d15b8e6085b24</id>
<content type='text'>
This is the block argument equivalent of the existing `getAsmResultNames` hook.

Closes tensorflow/mlir#329

COPYBARA_INTEGRATE_REVIEW=https://github.com/tensorflow/mlir/pull/329 from plaidml:flaub-region-arg-names fc7876f2d1335024e441083cd25263fd6247eb7d
PiperOrigin-RevId: 286523299
</content>
</entry>
<entry>
<title>Add support for providing a default implementation for an interface method.</title>
<updated>2019-12-18T19:09:11+00:00</updated>
<author>
<name>River Riddle</name>
<email>riverriddle@google.com</email>
</author>
<published>2019-12-18T19:02:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=29807ff5e4636b0300cd5a3182eb54254e2714d3'/>
<id>urn:sha1:29807ff5e4636b0300cd5a3182eb54254e2714d3</id>
<content type='text'>
This enables providing a default implementation of an interface method. This method is defined on the Trait that is attached to the operation, and thus has all of the same constraints and properties as any other interface method. This allows for interface authors to provide a conservative default implementation for certain methods, without requiring that all users explicitly define it. The default implementation can be specified via the argument directly after the interface method body:

  StaticInterfaceMethod&lt;
    /*desc=*/"Returns whether two array of types are compatible result types for an op.",
    /*retTy=*/"bool",
    /*methodName=*/"isCompatibleReturnTypes",
    /*args=*/(ins "ArrayRef&lt;Type&gt;":$lhs, "ArrayRef&lt;Type&gt;":$rhs),
    /*methodBody=*/[{
      return ConcreteOp::isCompatibleReturnTypes(lhs, rhs);
    }],
    /*defaultImplementation=*/[{
      /// Returns whether two arrays are equal as strongest check for
      /// compatibility by default.
      return lhs == rhs;
    }]

PiperOrigin-RevId: 286226054
</content>
</entry>
<entry>
<title>Try to fold operations in DialectConversion when trying to legalize.</title>
<updated>2019-12-14T00:47:26+00:00</updated>
<author>
<name>River Riddle</name>
<email>riverriddle@google.com</email>
</author>
<published>2019-12-13T20:21:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b030e4a4ec5ef47549377cc0af71a95abcf28a98'/>
<id>urn:sha1:b030e4a4ec5ef47549377cc0af71a95abcf28a98</id>
<content type='text'>
This change allows for DialectConversion to attempt folding as a mechanism to legalize illegal operations. This also expands folding support in OpBuilder::createOrFold to generate new constants when folding, and also enables it to work in the context of a PatternRewriter.

PiperOrigin-RevId: 285448440
</content>
</entry>
</feed>
