I have not had time to update this section with all the code that I've recently written. I'm adding one at a time, based on what could be more useful to others.

  • (2013) Concurrent Sparse Bit Vector: A concurrent data structure to store sparse integers sets - based on concurrent skip lists.
  • (2014) Hierarchical Clustering: A simple implementation of hierarchical clustering that requires only distances/similarities between points (and no other property of the point itself) that is supplied by a user defined distance function.
  • (2011) kdkmeans-cuda An implementation of the kmeans clustering algorithm using KDTrees, on GPUs]]

Compilers: (See README file in each tar ball for instructions to build).

  • (2010) Comparison of a few phi-placement algorithms (part of final year B.E project): GCC_PhiPlacementComparison
  • (2010) Predicated global value number (Based on Karthik Gargi's PLDI 2002 paper - part of final year B.E project): GCC_PredicatedGlobalValueNumbering
  • (2012) Reorder basic blocks based on liveness, to reduce register pressure before register allocation. (Based on my advisor, Mr Prashantha Naduthota's idea to reorder blocks based on live-in set size). LLVM_ReorderCFGRegAlloc

Legacy Code:

This section contains some (very) old code that I wrote. I'm copying them over here from my old website with a hope that it will be useful to someone someday.