  GP 2 is a rule-based programming language based on graph transformation rules
which aims to facilitate program analysis and verification. Writing efficient
programs in such a language is challenging because graph matching is expensive.
GP 2 addresses this problem by providing rooted rules which, under mild
conditions, can be matched in constant time. Recently, we implemented a number
of changes to Bak's GP 2-to-C compiler in order to speed up graph programs. One
key improvement is a new data structure for dynamic arrays called BigArray.
This is an array of pointers to arrays of entries, successively doubling in
size. To demonstrate the speed-up achievable with the new implementation, we
present a reduction program for recognising binary DAGs which previously ran in
quadratic time but now runs in linear time when compiled with the new compiler.
