Arghhhh.. I made the check which determines if a cached object can get used safer (=more strict) now we only use the cache for about 2/3 functions on the second run of the tests. And the 1/3 where the hash determines a difference are the ones we actually want to use the cache because those are the large ones where jitting takes a long time...
while have to make sure the llvm IR we generate is deterministic
part of them are our "#%p" temp node name, the other ones are line numbers which are not set and therefore create slightly different debug data and phi nodes which get created in nondeterministic order (std::unordered_map with InternedString as key)
but it seams like test/tests/django_setup.py is working now witch cache
Sadly the compiling still takes 750ms using that approach with cache (JITting aka cache file loading takes 100ms form the 750ms) the remaining time is spend in our analysis passes irgen and opt... and this approach still requires to run them.. :-(