diff options
author | Sean Silva <silvasean@google.com> | 2021-02-04 16:17:45 -0800 |
---|---|---|
committer | Sean Silva <silvasean@google.com> | 2021-02-10 15:22:59 -0800 |
commit | 6b07a978350ff738b81866c6c9114770f997b2fc (patch) | |
tree | 1547f51c0ff16854c018fe1e11474ea7b2a6dd31 /llvm/lib/Transforms/Utils/CloneModule.cpp | |
parent | 309d40f05228ef71860afe1c179a3c8dcc4d7e79 (diff) | |
download | llvm-6b07a978350ff738b81866c6c9114770f997b2fc.zip llvm-6b07a978350ff738b81866c6c9114770f997b2fc.tar.gz llvm-6b07a978350ff738b81866c6c9114770f997b2fc.tar.bz2 |
[mlir] Introduce more intuitive wording for attributes.
After discussion, it seems like we want to go with
"inherent/discardable". These seem to best capture the relationship with
the op semantics and don't conflict with other terms.
Please let me know your preferences. Some of the other contenders are:
```
"intrinsic" side | "annotation" side
-----------------+------------------
characteristic | annotation
closed | open
definitional | advisory
essential | discardable
expected | unexpected
innate | acquired
internal | external
intrinsic | extrinsic
known | unknown
local | global
native | foreign
inherent | acquired
```
Rationale:
- discardable: good. discourages use for stable data.
- inherent: good
- annotation: redundant and doesn't convey difference
- intrinsic: confusable with "compiler intrinsics".
- definitional: too much of a mounthful
- extrinsic: too exotic of a word and hard to say
- acquired: doesn't convey the relationship to the semantics
- internal/external: not immediately obvious: what is internal to what?
- innate: similar to intrinsic but worse
- acquired: we don't typically think of an op as "acquiring" things
- known/unknown: by who?
- local/global: to what?
- native/foreign: to where?
- advisory: confusing distinction: is the attribute itself advisory or
is the information it provides advisory?
- essential: an intrinsic attribute need not be present.
- expected: same issue as essential
- unexpected: by who/what?
- closed/open: whether the set is open or closed doesn't seem essential
to the attribute being intrinsic. Also, in theory an op can have an
unbounded set of intrinsic attributes (e.g. `arg<N>` for func).
- characteristic: unless you have a math background this probably
doesn't make as much sense
Differential Revision: https://reviews.llvm.org/D96093
Diffstat (limited to 'llvm/lib/Transforms/Utils/CloneModule.cpp')
0 files changed, 0 insertions, 0 deletions