KhronosGroup / KhronosGroup/Vulkan-MemoryModel
avvisinc is redundant in the last two lines of the definition of locord
- Dominant language
- C++
- Stars
- 117
- Forks
- 15
- PR merge metrics
- No merged PRs in 30d
Description
This is not a bug, but a proposed simplification.
These lines include the following parts:
- (stor[W]) . (hb & avvisinc) . avdv
- visdv . (hb & avvisinc) . (stor[R])
Where avdv = stor[AVDEVICE] and visdv = stor[VISDEVICE]
We know that "SC0+SC1 = R+W"
, and avvisinc = (rai[((SC0+SC1)->(AVDEVICE+VISDEVICE)) + ...]) - iden + ...
, and no (R+W)&(AVDEVICE+VISDEVICE) (so we don't fall in the '- iden' case)
So (stor[W]) . avdv in avvisinc, and visdv . (stor[R]) in avvisinc.
So I suggest replacing "(hb & avvisinc)" by "hb" in these two lines.
This in turn would allow us to remove (SC0+SC1)->(AVDEVICE+VISDEVICE) from avvisinc, since avvisinc no longer appears in a position where either end could be AVDEVICE or VISDEVICE.
Contributor guide
No contributing guide indexed for this repository
Research direction
Locate the definition of locord and avvisinc in the repository, then inspect the surrounding model rules and any checks that exercise these definitions. Verify the stated SC0+SC1 and device-set assumptions before simplifying the two expressions and removing the now-unneeded relation; done means the model still validates without avvisinc in those positions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100