GitHub PushEvent at 2014-04-16 16:11:53
Repository: llvm-project-submodule
Actor: chapuni
Payload: {"shas":[["09b9ca25b75467e9bf8d1aebfb2f3520b612102c","20d921fc546146872790792fbd1b5fc4bad0eb3d@apple.com","InstrProf: Calculate a better function hash\n\nThe function hash should change when control flow changes.  This patch\nhashes the type of each AST node that affects counters, rather than just\ncounting how many there are.  These types are combined into a small\nenumerator that currently has 16 values.\n\nThe new hash algorithm packs the enums for consecutively visited types\ninto a `uint64_t`.  In order to save space for new types, the types are\nassumed to be 6-bit values (instead of 4-bit).  In order to minimize\noverhead for functions with little control flow, the `uint64_t` is used\ndirectly as a hash if it never fills up; if it does, it's passed through\nan MD5 context.\n\n<rdar://problem/16435801>","Duncan P. N. Exon Smith",true]],"size":1,"ref":"refs/heads/master","head":"09b9ca25b75467e9bf8d1aebfb2f3520b612102c"}