layers: Update bound memory tracking and alias checking
authorTobin Ehlis <tobine@google.com>
Mon, 8 Aug 2016 18:33:11 +0000 (12:33 -0600)
committerTobin Ehlis <tobine@google.com>
Mon, 15 Aug 2016 17:26:36 +0000 (11:26 -0600)
commit027a195f694729a75c271650d1393f7bc100cb91
treec9522d7cf4a9e1d04bec303579ca0d7e5d03a5f0
parentbcccdeaec859baef596d72adae46c383e51bb3ce
layers: Update bound memory tracking and alias checking

Store all ranges bound to a single memory allocation in a single map indexed by object id.
Add two separate unordered_sets for independent image and vector processing.

Added a set of aliases to MEMORY_RANGE struct to hold any aliased ranges.
Insert aliased ranges at create time and remove the aliases when a range
is destroyed.

Have a single function, rangesInterset, to track if regions bound to a memory
allocation overlap, and if linear/non-linear overlap in violation of the spec.
layers/core_validation.cpp
layers/core_validation_types.h