| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
To support these mappings a hook must be overridden on the type converter: 'materializeConversion' :to generate a cast operation from the new types to the old type. This operation is automatically erased if all uses are removed, otherwise it remains in the IR for the user to handle.
PiperOrigin-RevId: 254411383
|
|
|
|
|
|
| |
types(I1/I16/I32/etc.) when creating the MLIRContext. This allows for these symbols to be accessed without the need to perform any lookups/locking.
PiperOrigin-RevId: 254410080
|
|
|
|
|
|
|
|
|
|
|
| |
This CL adds support for O-D ops in Linalg ops by:
1. making the CopyOp maps optional instead of default valued
2. allowing certain map operations to accept and return empty maps
3. making linalg::LowerToLoops aware of these changes
4. providing a proper 0-D impl for CopyOp and FillOp
5. adding the relevant tests
PiperOrigin-RevId: 254381908
|
|
|
|
|
|
| |
parent region for the insertion position. This allows for inlining the given region into the end of another region.
PiperOrigin-RevId: 254367375
|
|
|
|
| |
PiperOrigin-RevId: 254349019
|
|
|
|
|
|
|
| |
Historically the pointer-based version of builders was used.
This CL uniformizes to OpBuilder &
PiperOrigin-RevId: 254280885
|
|
|
|
|
|
|
| |
using the enum class in the packed struct, use unsigned value for
encoding and convert it lazily
PiperOrigin-RevId: 254258341
|
|
|
|
|
|
| |
relax the verifier.
PiperOrigin-RevId: 254206814
|
|
|
|
|
|
|
|
|
| |
These are useful utility iterators helping use to get the element types of
operands/results of shaped types.
Also defined ranges for these iterators.
PiperOrigin-RevId: 254180888
|
|
|
|
|
|
| |
what the function is actually checking.
PiperOrigin-RevId: 254141073
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://www.khronos.org/registry/spir-v/specs/1.0/SPIRV.html#OpTypeImage.
Add new enums to describe Image dimensionality, Image Depth, Arrayed
information, Sampling, Sampler User information, and Image format.
Doesn's support the Optional Access qualifier at this stage
Fix Enum generator for tblgen to add "_" at the beginning if the enum
starts with a number.
PiperOrigin-RevId: 254091423
|
|
|
|
|
|
|
|
| |
Support for ops with variadic operands/results will come later; but right now
a proper message helps to avoid deciphering confusing error messages later in
the compilation stage.
PiperOrigin-RevId: 254071820
|
|
|
|
| |
PiperOrigin-RevId: 254070969
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Support for 1->0 type mappings, i.e. when the argument is being removed.
* Reordering types when converting a type signature.
* Adding new inputs when converting a type signature.
This cl also lays down the initial foundation for supporting 1->N type mappings, but full support will come in a followup.
Moving forward, function signature changes will be driven by populating a SignatureConversion instance. This class contains all of the necessary information for adding/removing/remapping function signatures; e.g. addInputs, addResults, remapInputs, etc.
PiperOrigin-RevId: 254064665
|
|
|
|
|
|
| |
uniquing, out of Module and into a new class SymbolTable. As modules become operations it is necessary to extract out this functionality that cannot be represented with a generic operation.
PiperOrigin-RevId: 254041734
|
|
|
|
|
|
| |
These were likely added in error because of confusion about the flag when it was just called "-verify". The extra flag doesn't cause much harm, but it does make mlir-opt do more work and clutter the RUN line
PiperOrigin-RevId: 254037016
|
|
|
|
|
|
| |
This name has caused some confusion because it suggests that it's running op verification (and that this verification isn't getting run by default).
PiperOrigin-RevId: 254035268
|
|
|
|
|
|
|
|
| |
By default MSVC does not export any symbol and does not create a companion
.lib for a .dll. This will cause problems when trying to link against the
library.
PiperOrigin-RevId: 254033454
|
|
|
|
|
|
|
|
| |
This does not map the calls to the CUDA libary directly but uses a slim wrapper
ABI on top that has more convenient types for code generation and is stable. Such
ABI is expected to be provided by the actual runner.
PiperOrigin-RevId: 253983833
|
|
|
|
|
|
| |
DenseElementsAttr.
PiperOrigin-RevId: 253910543
|
|
|
|
| |
PiperOrigin-RevId: 253894445
|
|
|
|
|
|
| |
preparation for making the location classes attributes instead of separate IR types.
PiperOrigin-RevId: 253860058
|
|
|
|
|
|
| |
Identifier already contains all of the necessary functionality/verification, so having a separate class for filenames is unnecessary.
PiperOrigin-RevId: 253855505
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a direct modelling of SPIR-V's OpVariable. The custom assembly format
parsers/prints descriptor in a nicer way if presents. There are other common
decorations that can appear on variables like builtin, which can be supported
later.
This CL additionally deduplicates the parser/printer/verifier declaration
in op definitions by adding defaults to SPV_Op base.
by adding
PiperOrigin-RevId: 253828254
|
|
|
|
|
|
|
| |
This is an efficient method to copy attributes from one operation to
another.
PiperOrigin-RevId: 253806004
|
|
|
|
|
|
| |
Rename `createLowerGpuOpsToNNVMOpsPass` to `createLowerGpuOpsToNVVMOpsPass`.
PiperOrigin-RevId: 253801577
|
|
|
|
|
|
| |
LoopFusionUtils (NFC).
PiperOrigin-RevId: 253797886
|
|
|
|
| |
PiperOrigin-RevId: 253788170
|
|
|
|
|
|
|
| |
This function was declared in the `mlir` namespace but defined in the global
namespace, leading to linking errors when used.
PiperOrigin-RevId: 253784410
|
|
|
|
| |
PiperOrigin-RevId: 253767820
|
|
|
|
| |
PiperOrigin-RevId: 253767688
|
|
|
|
|
|
|
|
|
| |
a CUBIN blob for execution on CUDA GPUs.
This is a first in a series of patches to build a simple CUDA runner to allow
experimenting with MLIR code on GPUs.
PiperOrigin-RevId: 253758915
|
|
|
|
|
|
|
| |
This does not add any new functionality but gives clearing the blocks of the
body region a more obvious name.
PiperOrigin-RevId: 253751382
|
|
|
|
|
|
| |
with <=15 values.
PiperOrigin-RevId: 253711372
|
|
|
|
|
|
| |
broadcasted to a particular output type
PiperOrigin-RevId: 253694397
|
|
|
|
|
|
| |
OpAsmPrinter (NFC)
PiperOrigin-RevId: 253674584
|
|
|
|
|
|
|
| |
This CL defines a single `spv.constant` op to represent various
flavors of SPIR-V constant instructions.
PiperOrigin-RevId: 253665716
|
|
|
|
|
|
| |
This CL also tightens spv.FMul to only accept 16/32/64-bit floats.
PiperOrigin-RevId: 253649352
|
|
|
|
|
|
|
| |
actual body of a kernel function. This enables using gpu.launch_func with
external kernel declarations.
PiperOrigin-RevId: 253639770
|
|
|
|
|
|
|
| |
This CL also updates to use containing region as a fallback way to find
context since functions will eventually become ops with regions.
PiperOrigin-RevId: 253627322
|
|
|
|
|
|
|
| |
* Add basic design philosophy
* Add type syntax to both the doc and type parser comments
PiperOrigin-RevId: 253625782
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Index types integers of platform-specific bit width. They are used to index
memrefs and as loop induction variables, however they could not be obtained
from an integer until now, making it virtually impossible to express indirect
accesses (given that memrefs of indices are not allowed) or data-dependent
loops. Introduce `std.index_cast` to transform indices into integers and vice
versa. The semantics of this cast is to sign-extend when casting to a wider
integer, and to truncate when casting to a narrower integer. It belongs to
StandardOps because both types it operates on are standard types, and because
its results are likely to be used in std.load and std.store.
Introduce llvm.sext, llvm.zext and llvm.trunc operations to the LLVM dialect.
Provide the conversion of `std.index_cast` to llvm.sext or llvm.trunc,
depending on the actual bitwidth of `index` known during the conversion.
PiperOrigin-RevId: 253624100
|
|
|
|
|
|
|
|
| |
Arguably, this function is only useful for transformations and should not
pollute the main IR. Also make sure it accepts a the resulting container
by-reference instead of returning it.
PiperOrigin-RevId: 253622981
|
|
|
|
|
|
| |
will enable fusion of consumer loop nests into their producers in subsequent CLs.
PiperOrigin-RevId: 253601994
|
|
|
|
| |
PiperOrigin-RevId: 253551452
|
|
|
|
|
|
|
|
| |
Block.h/cpp.
This doesn't change much but makes it easier to find.
PiperOrigin-RevId: 253423041
|
|
|
|
|
|
| |
build error on MSVC where it is unable to properly handled template type aliases.
PiperOrigin-RevId: 253339204
|
|
|
|
| |
PiperOrigin-RevId: 253314416
|
|
|
|
|
|
|
|
|
|
|
| |
Conversions from dialect A to dialect B depend on both A and B. Therefore, it
is reasonable for them to live in a separate library that depends on both
DialectA and DialectB library, and does not forces dependees of DialectA or
DialectB to also link in the conversion. Create the directory layout for the
conversions and move the Standard to LLVM dialect conversion as the first
example.
PiperOrigin-RevId: 253312252
|
|
|
|
|
|
| |
case of 0/1 that we explicitly check for throughout the codebase. This also fixes weird build failures in MSVC where it doesn't properly handle template type aliases.
PiperOrigin-RevId: 253269936
|