Hi all, I plan to improve the existing profiling support in LLVM for my master thesis. The goal is threefold: a) Implement more efficient instrumentation along the lines of [Ball94]. b) Implement and experiment with heuristic estimators as proposed in [Wu94]. c) Make profile information available in the backend machinery. We have a preliminary patch that achieves this by maintaining profiles during instruction selection and CFG modifications. This might be useful for several backend passes such as register allocation or if- conversion. We also plan to slightly modify the internal data structures in order to allow for more efficient lookups. If the implementation proofs to be useful and there is general interest in the community, I would like to contribute the patches back to the official repository. If you have any comments, experiences, or advice on that matter, I would be happy to hear them upfront. Best Regards, Andreas Neustifter Vienna University of Technology [Ball94] Thomas Ball, James R. Larus: "Optimally profiling and tracing programs" ACM TOPLAS, Volume 16, Issue 4, 1994 http://portal.acm.org/citation.cfm?id=183527 [Wu94] Youfeng Wu, James R. Larus: Procedings of the 27th ACM International Symposium on Microarchitecture, 1994 http://portal.acm.org/citation.cfm?id=192724.192725