A library of compiler optimization algorithms. This is a project in which I learn about and practice writing optimizing compilers. Ibn-Khaldun is a famous Muslim scholar with significant contributions to economics.
Implement the program structure tree as described by [0].
[0] Johnson, Richard, David Pearson, and Keshav Pingali. "The program structure tree: Computing control regions in linear time." ACM SigPlan Notices. Vol. 29. No. 6. ACM, 1994.
Implement a control-flow-graph generator to test implemented algorithms and data structures. Check Section 7.8 in Engineering a Compiler for definitions of different CFG constructs.
1 - Randomly choose a construct.
2 - While generating a construct, randomly choose to either generate a nested construct recursively or finish the current construct and exit.
Implement dividing a graph into its tri-connected components as suggested by [0] or [1].
[0] Hopcroft, John E., and Robert Endre Tarjan. "Dividing a graph into triconnected components." SIAM Journal on Computing 2.3 (1973): 135-158.
[1] Gutwenger, Carsten, and Petra Mutzel. "A linear time implementation of SPQR-trees." International Symposium on Graph Drawing. Springer Berlin Heidelberg, 2000.