This is an archive of the discontinued LLVM Phabricator instance.

[mlir][spirv] Relax verification to allow flexible placement
ClosedPublic

Authored by antiagainst on Jan 25 2020, 6:43 AM.

Details

Summary

Thus far certain SPIR-V ops have been required to be in spv.module.
While this provides strong verification to catch unexpected errors,
it's quite rigid and makes progressive lowering difficult. Sometimes
we would like to partially lower ops from other dialects, which may
involve creating ops like global variables that should be placed in
other module-like ops. So this commit relaxes the requirement of
such SPIR-V ops' scope to module-like ops. Similarly for function-
like ops.

Diff Detail

Event Timeline

antiagainst created this revision.Jan 25 2020, 6:43 AM

Unit tests: pass. 62195 tests passed, 0 failed and 815 were skipped.

clang-tidy: pass.

clang-format: pass.

Build artifacts: diff.json, clang-tidy.txt, clang-format.patch, CMakeCache.txt, console-log.txt, test-results.xml

Pre-merge checks is in beta. Report issue. Please join beta or enable it for your project.

Change more ops' verification

Unit tests: pass. 62195 tests passed, 0 failed and 815 were skipped.

clang-tidy: pass.

clang-format: pass.

Build artifacts: diff.json, clang-tidy.txt, clang-format.patch, CMakeCache.txt, console-log.txt, test-results.xml

Pre-merge checks is in beta. Report issue. Please join beta or enable it for your project.

benvanik accepted this revision.Jan 25 2020, 4:04 PM
This revision is now accepted and ready to land.Jan 25 2020, 4:04 PM
This revision was automatically updated to reflect the committed changes.