]> Zhao Yanbai Git Server - minix.git/commit
magic pass: register additional compatible types 62/3162/1
authorDavid van Moolenbroek <david@minix3.org>
Mon, 24 Aug 2015 06:22:02 +0000 (08:22 +0200)
committerDavid van Moolenbroek <david@minix3.org>
Thu, 17 Sep 2015 17:13:21 +0000 (17:13 +0000)
commit3a3478dcea16cd56275b5a2310316cc8425cb5f4
tree2ddd9f1355f2281c1314c4ac896e5980d22a7613
parentebef68bf4c8e95fe6b06214c1081fab3882ce1d3
magic pass: register additional compatible types

This patch is a first step towards working around the larger problem of
LLVM 3.x's use of bitcasting between structures and their elements to
deal with opaque types, replacing LLVM 2.x's actual unification.  The
patch allows the pass to register a larger number of compatible types,
in particular for structure pointers passed through function calls.
A skeleton is provided for dealing with structure elements as well, but
that part requires much more work.  It remains to be seen whether a
more structural approach to dealing with this problem may be warranted.

For now, this change is necessary to allow instrumented state transfer
of various "minix_timer" structures and pointers in PM and VFS.

Change-Id: Ib717d86ccfced53387e72a92750d22ae980c3466
minix/llvm/passes/magic/MagicPass.cpp