Sr. Compiler engineer at Facebook (Since Aug. 2017)
- Compiler optimizations (llvm) geared towards improving runtime performance of native code
- Static Analysis (clang)
- Large scale source code refactoring and modernization
- Performance analysis and optimizations
Sr. Compiler engineer at Samsung Austin R&D Center.
- Working on performance and code-size optimizations on gcc
- Loop optimizations, polyhedral framework (graphite), vectorization, feedback directed optimizations, android performance improvements, refactoring gcc backend.
- Working on clang static analyzer in my spare time.
- Writing checkers, running clang static analyzer on linux kernel, gcc.
Sr. Compiler engineer at Qualcomm.
- Worked on LLVM compiler infrastructure specifically, on the Hexagon Backend.
- Develop optimization algorithms to improve performance and code-size for Hexagon DSP. Global scheduling, Loops transformations, peephole optimizations, liveness analysis.
- Worked on clang static analyzer to improve checks to help find out potential bugs in C/C++ programs.
Publications:
-
A. Kumar, A. Sutton, and B. Stroustrup, “Rejuvenating C++ Programs through Demacrofication”, in Software Maintenance, 2012. ICSM 2012. IEEE Conference on. IEEE, 2012
-
A. Kumar, A. Sutton, and B. Stroustrup, “The Demacrofier”, in Software Maintenance, 2012. ICSM 2012. IEEE Conference on. IEEE, 2012
-
A. Kumar, Sebastian Pop, “SCoP Detection: A Fast Algorithm for Industrial Compilers”, in IMPACT 2016, 6th International Workshop on Polyhedral Compilation Techniques.
Education
- M.S. in Computer Science, Texas A&M University College Station, Texas
- Thesis: Static analysis and possible replacements of preprocessor macros in a C++ program.
- B.Tech. in Electronics & Communications Engineering, National Institute of Technology Hamirpur, India
Technical Skills
• Programming languages: C++11, C, Python, JavaScript
• Compilers: LLVM Compiler infrastructure, GCC.
• Libraries: C++ (STL, Boost, folly)
• Others: CMake, git
Academic Projects (Texas A&M)
- A C++ library to facilitate random access of data in a file in an efficient way using memory-mapped file I/O facilities in Linux.
- Designed and implemented a lexical analyzer, parser, semantic analyzer, code generator and optimizer (control flow, dataflow, and register allocation) for ‘DECAF’, a subset of C++ programming language (flex, bison++ and C++).
- Designed and implemented an interpreter for Tiny SQL- a subset of SQL (C++).
- Implemented a branch mis-prediction recovery mechanism for a speculative branch predictor from the paper titled ‘A Branch Predictor with New Recovery Mechanism’ by Young-Il Cho, Department of Computer Science at University of Suwon.
- An intelligent active vision system using neuro-evolutionary techniques (Java).
- Implemented portions of operating system (virtual memory management, memory manager, low level threading system, file system) using the bochs emulation environment.
IDEs using Demacrofier
Visual studio replacing macros:
https://devblogs.microsoft.com/cppblog/convert-macros-to-constexpr/
Repara project’s Cevelop IDE:
http://repara-project.eu/ https://iris.unito.it/retrieve/handle/2318/1523738/52857/15_RePara_ISPA.pdf
https://www.cevelop.com/
LANGUAGES
• English (Fluent), Hindi (Mother Tongue)