Share This Author
LLVM: a compilation framework for lifelong program analysis & transformation
- Chris Lattner, Vikram S. Adve
- Computer ScienceInternational Symposium on Code Generation and…
- 20 March 2004
The design of the LLVM representation and compiler framework is evaluated in three ways: the size and effectiveness of the representation, including the type information it provides; compiler performance for several interprocedural problems; and illustrative examples of the benefits LLVM provides for several challenging compiler problems.
A type and effect system for deterministic parallel Java
It is demonstrated that a practical type and effect system can simplify parallel programming by guaranteeing deterministic semantics with modular, compile-time type checking even in a rich, concurrent object-oriented language such as Java.
Making context-sensitive points-to analysis with heap cloning practical for the real world
This paper shows, for the first time, that a context-sensitive, field-sensitive algorithm with fullheap cloning (by acyclic call paths) can indeed be both scalable and extremely fast in practice.
Understanding the propagation of hard errors to software and implications for resilient system design
- Man-Lap Li, Pradeep Ramachandran, S. Sahoo, S. Adve, Vikram S. Adve, Yuanyuan Zhou
- Computer ScienceASPLOS
- 1 March 2008
This paper explores a cooperative hardware-software solution that watches for anomalous software behavior to indicate the presence of hardware faults, resulting in identifying low-cost detection methods and providing guidelines for implementation of the recovery and diagnosis components of such a reliability solution.
Understanding integer overflow in C/C++
- Will Dietz, Peng Li, J. Regehr, Vikram S. Adve
- Computer Science34th International Conference on Software…
- 2 June 2012
IOC, a dynamic checking tool for integer overflows, is developed and used to conduct the first detailed empirical study of the prevalence and patterns of occurrence ofinteger overflows in C and C++ code, and shows that intentional uses of wraparound behaviors are more common than is widely believed.
Software transactional memory for large scale clusters
Cluster-STM is presented, an STM designed for high performance on large-scale commodity clusters that addresses several novel issues posed by this domain, including aggregating communication, managing locality, and distributing transactional metadata onto the nodes.
KCoFI: Complete Control-Flow Integrity for Commodity Operating System Kernels
- J. Criswell, Nathan Dautenhahn, Vikram S. Adve
- Computer ScienceIEEE Symposium on Security and Privacy
- 18 May 2014
A subset of KCoFI's design is formally verified by modeling several features in small-step semantics and providing a partial proof that the semantics maintain control-flow integrity, and the overheads are far lower than heavyweight memory-safety techniques.
Automatic pool allocation: improving performance by controlling data structure layout in the heap
This paper describes Automatic Pool Allocation, a transformation framework that segregates distinct instances of heap-based data structures into seperate memory pools and allows heuristics to be used…
Nested Kernel: An Operating System Architecture for Intra-Kernel Privilege Separation
- Nathan Dautenhahn, T. Kasampalis, Will Dietz, J. Criswell, Vikram S. Adve
- Computer ScienceASPLOS
- 14 March 2015
This work incorporated the nested kernel architecture into FreeBSD on x86-64 hardware while allowing the entire operating system to operate at the highest hardware privilege level by write-protecting MMU translations and de-privileging the untrusted part of the kernel.
SAFECode: enforcing alias analysis for weakly typed languages
A compilation strategy for standard C programs that guarantees that aggressive interprocedural pointer analysis, a call graph, and type information for a subset of memory, are never invalidated by any possible memory errors.