SPIRV-Tools/test
David Neto 5065227748 Use pseudo entry and pseudo exit blocks for dominance.
For dominance calculations we use an "augmented" CFG
where we always add a pseudo-entry node that is the predecessor
in the augmented CFG to any nodes that have no predecessors in the
regular CFG.  Similarly, we add a pseudo-exit node that is the
predecessor in the augmented CFG that is a successor to any
node that has no successors in the regular CFG.

Pseudo entry and exit blocks live in the Function object.

Fixes a subtle problem where we were implicitly creating
the block_details for the pseudo-exit node since it didn't
appear in the idoms map, and yet we referenced it.  In such a case the
contents of the block details could be garbage, or zero-initialized.
That sometimes caused incorrect calculation of immediate dominators
and post-dominators.  For example, on a debug build where the details
could be zero-initialized, the dominator of an unreachable block would
be given as the pseudo-exit node.  Bizarre.

Also, enforce the rule that you must have an OpFunctionEnd to close off
the last function.
2016-06-24 17:08:20 -04:00
..
AssemblyContext.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
AssemblyFormat.cpp Add tests for SubgroupDispatch. 2016-04-21 15:46:08 -04:00
BinaryDestroy.cpp Add tests for SubgroupDispatch. 2016-04-21 15:46:08 -04:00
BinaryEndianness.cpp Extend copyright to 2016. 2016-01-07 13:44:22 -05:00
BinaryHeaderGet.cpp Add SPIR-V 1.1 grammar. 2016-04-18 10:45:57 -04:00
BinaryParse.cpp Fix ExtInst parsing: no IdRef* at end 2016-06-15 10:00:06 -04:00
BinaryToText.cpp Add tests for SubgroupDispatch. 2016-04-21 15:46:08 -04:00
BinaryToText.Literal.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
CMakeLists.txt Use arguments for add_spvtools_unittest. 2016-06-22 12:13:59 -04:00
Comment.cpp Fix spelling mistakes 2016-04-02 22:54:59 +01:00
DiagnosticDestroy.cpp spvDiagnosticDestroy is safe to call on nullptr 2016-01-11 14:26:46 -05:00
DiagnosticPrint.cpp Extend copyright to 2016. 2016-01-07 13:44:22 -05:00
DiagnosticStream.cpp Extend copyright to 2016. 2016-01-07 13:44:22 -05:00
ExtInst.OpenCL.std.cpp Fix ExtInst parsing: no IdRef* at end 2016-06-15 10:00:06 -04:00
ExtInstGLSLstd450.cpp Use SPIR-V headers from the KhronosGroup/SPIRV-Headers repo. 2016-06-10 08:48:37 -04:00
FixWord.cpp Extend copyright to 2016. 2016-01-07 13:44:22 -05:00
GeneratorMagicNumber.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
HexFloat.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
ImmediateInt.cpp Add tests for SubgroupDispatch. 2016-04-21 15:46:08 -04:00
LibspirvMacros.cpp Extend copyright to 2016. 2016-01-07 13:44:22 -05:00
NamedId.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
OpcodeMake.cpp Extend copyright to 2016. 2016-01-07 13:44:22 -05:00
OpcodeRequiresCapabilities.cpp Add tests for SubgroupDispatch. 2016-04-21 15:46:08 -04:00
OpcodeSplit.cpp Remove dependency on SPIR-V headers in libspirv.h. 2016-04-04 10:34:28 -04:00
OpcodeTableGet.cpp Add SPIR-V 1.1 grammar. 2016-04-18 10:45:57 -04:00
operand-class-test-coverage.csv Add negative-coverage location to operand-class-test-coverage.csv. 2015-10-26 12:55:33 -04:00
Operand.cpp Add SPIR-V 1.1 grammar. 2016-04-18 10:45:57 -04:00
OperandCapabilities.cpp Test ABGR in both 1.0 and 1.1. 2016-05-12 22:06:28 -04:00
OperandPattern.cpp Add SPIR-V 1.1 grammar. 2016-04-18 10:45:57 -04:00
SoftwareVersion.cpp Add CHANGES file with high level software history 2016-04-22 15:19:45 -04:00
TestFixture.h Add tests for MaxByteOffset. 2016-05-10 22:46:27 -04:00
TextAdvance.cpp Avoid going out of bound in advanceLine() and refine comments. 2016-04-21 16:08:51 -04:00
TextDestroy.cpp Add a target environment to spvContextCreate(). 2016-03-31 12:16:51 -04:00
TextLiteral.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
TextStartsNewInst.cpp Fixed use-after-free in isStartOfNewInst() tests. 2016-01-12 14:47:24 -05:00
TextToBinary.Annotation.cpp Add tests for MaxByteOffset. 2016-05-10 22:46:27 -04:00
TextToBinary.Barrier.cpp First tests for SPIR-V v1.1. 2016-04-19 16:34:12 -04:00
TextToBinary.Constant.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
TextToBinary.ControlFlow.cpp Add v1.1 tests for OpLoopMerge. 2016-04-29 14:09:52 -04:00
TextToBinary.cpp Add tests for SubgroupDispatch. 2016-04-21 15:46:08 -04:00
TextToBinary.Debug.cpp Test OpModuleProcessed. 2016-05-11 12:40:59 -04:00
TextToBinary.DeviceSideEnqueue.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
TextToBinary.Extension.cpp Fix ExtInst parsing: no IdRef* at end 2016-06-15 10:00:06 -04:00
TextToBinary.Function.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
TextToBinary.Group.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
TextToBinary.Image.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
TextToBinary.Literal.cpp Extend copyright to 2016. 2016-01-07 13:44:22 -05:00
TextToBinary.Memory.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
TextToBinary.Miscellaneous.cpp Remove AssemblyContext::getWord(). 2016-03-15 15:16:40 -04:00
TextToBinary.ModeSetting.cpp Add basic Initializer/Finalizer tests. 2016-04-27 22:02:39 -04:00
TextToBinary.PipeStorage.cpp Add PipeStorage tests. 2016-05-09 13:54:05 -04:00
TextToBinary.SubgroupDispatch.cpp Add tests for SubgroupDispatch. 2016-04-21 15:46:08 -04:00
TextToBinary.TypeDeclaration.cpp Add OpSizeOf tests. 2016-04-27 15:41:58 -04:00
TextWordGet.cpp Handle CRLF in assembly text. 2016-04-01 00:47:02 -04:00
UnitSPIRV.cpp Support 16-bit float in assembler and disassembler 2016-01-08 10:48:39 -05:00
UnitSPIRV.h Split validate_types file into multiple classes 2016-06-08 14:40:33 -04:00
Validate.Capability.cpp Test SpecId validation. 2016-05-11 10:01:06 -04:00
Validate.CFG.cpp Use pseudo entry and pseudo exit blocks for dominance. 2016-06-24 17:08:20 -04:00
Validate.Layout.cpp Use pseudo entry and pseudo exit blocks for dominance. 2016-06-24 17:08:20 -04:00
Validate.SSA.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
Validate.Storage.cpp Make everything compile cleanly with -Wpedantic. 2016-03-21 10:01:13 -04:00
ValidateFixtures.cpp Validator structured flow checks: back-edge, constructs 2016-06-22 11:51:19 -04:00
ValidateFixtures.h Add tests for SubgroupDispatch. 2016-04-21 15:46:08 -04:00
ValidateID.cpp In physical addressing, functions can return pointers 2016-06-14 11:00:39 -04:00
ValidationState.cpp Use SPIR-V headers from the KhronosGroup/SPIRV-Headers repo. 2016-06-10 08:48:37 -04:00