Symbolic Execution
I develop LLVM transformations that reduce path explosion in KLEE.
PhD student in computer science at Virginia Tech
I study compiler transformations for program analysis and security, with a focus on symbolic execution, parallel SMT solving, and constant-time code.
I am a PhD student in computer science at Virginia Tech and a Pratt Fellow. I am advised by Dr. Kirshanthan Sundararajah in the Language and Compiler Design Lab.
I earned a BS in computer science from Lahore University of Management Sciences, where I worked on software debloating and security evaluation. I later worked as a software engineer at Aerodyne Group, developing 3D tools.
Charitha Saumya*, Muhammad Hassan*, Rohan Gangaraju, Milind Kulkarni, Kirshanthan Sundararajah.
PACMPL 10(OOPSLA1), 2026
* These authors contributed equally.
The artifact received the Functional, Reusable, and Results Reproduced badges.
Muhammad Hassan.
SPLASH/ISSTA Student Research Competition, 2026 (Extended abstract)
Muhammad Hassan*, Talha Tahir*, Muhammad Farrukh, Abdullah Naveed, Anas Naeem, Fareed Zaffar, Fahad Shaon, Ashish Gehani, Sazzadur Rahaman.
IEEE Secure Development Conference 2023
* These authors contributed equally.
LLVM transformations reduce path explosion in KLEE. Selected kernels completed symbolic execution in seconds, while unmodified KLEE timed out after one hour. On libosip 4.0.0, KLEE found a bug in approximately 18.5–20.2 hours after transformation, while the original programs reached the 24-hour timeout.
ThunderFork uses cost-guided control-flow transformations to split SMT queries for parallel solving. Across 44 benchmarks, it was faster than Z3 on 25, tied on 18, and slower on one. Compared with cvc5, it was faster on 17 benchmarks and tied on nine. Both ThunderFork and cvc5 timed out on the remaining 18.
I am developing compiler transformations for constant-time code.
A framework for evaluating functional correctness, vulnerability mitigation, and image size reduction in container debloating.
This pipeline combines language models, retrieval-augmented generation, and LLVM coverage analysis for software debloating.
I develop LLVM transformations that reduce path explosion in KLEE.
I develop cost-guided control-flow transformations that split SMT queries for parallel solving.
I investigate compiler transformations for constant-time code and protection against timing side channels.
My work examines container debloating tools and approaches using language models and coverage analysis.
Graduate Teaching Assistant
Graduate Teaching Assistant
I develop LLVM transformations for symbolic execution and parallel SMT solving. I also investigate compiler transformations for constant-time code.
I developed interactive 2D and 3D annotation tools for digital twins. I improved rendering performance from 15 to 240 frames per second.
I developed and evaluated BloatProfiler, a framework for benchmarking Docker image debloating.
LLVM, Clang, KLEE, static analysis, symbolic execution
Z3, cvc5, STP, SMT-LIB
C, C++, Python, assembly, JavaScript, TypeScript, Solidity, Haskell
Linux, Git, Docker, Vagrant, CMake, Bash, PostgreSQL
Angular, React, Node.js, Django, TensorFlow, PyTorch, OpenCV
For research inquiries or collaborations, email me at mhassan01@vt.edu.