Demo Data from SIGIR 2026 / reviewers in the wild / expert
Peiming Liu
dblp:238/5405
· DBLP profile ↗
6ranked-venue papers
3as first author
4since 2021 · last 2024
0000-0002-6752-3274ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 3 first-author · 4 since 2021Systems, architecture and hardware · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
6 papers |
Compilers and program optimization · 39% Program analysis · 36% Concurrent programming · 14% | |
| Network and information security
1 paper |
Systems and software security · 100% |
Topics — the 16 heaviest of 18, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
static analysis |
1.2 | 3 | 2022 | PUS: A Fast and Highly Efficient Solver for Inclusion-based Pointer Analysis · ICSE 2022 OMPRacer: a scalable and precise static race detector for OpenMP programs · SC 2020 When threads meet events: efficient and precise static race detection with origins · PLDI 2021 |
Concurrent programming › concurrency bug detection
data race detection |
0.9 | 2 | 2021 | When threads meet events: efficient and precise static race detection with origins · PLDI 2021 OMPRacer: a scalable and precise static race detector for OpenMP programs · SC 2020 |
Compilers and program optimization › loop transformation
loop fusion |
0.8 | 1 | 2024 | Compilation of Shape Operators on Sparse Arrays · Proc. ACM Program. Lang. 2024 |
Compilers and program optimization › deep learning compiler
operator fusion |
0.8 | 1 | 2024 | Compilation of Shape Operators on Sparse Arrays · Proc. ACM Program. Lang. 2024 |
Compilers and program optimization › sparse computation
sparse tensor compilation |
0.8 | 1 | 2024 | Compiler Support for Sparse Tensor Convolutions · Proc. ACM Program. Lang. 2024 |
Compilers and program optimization › domain-specific compilation
tensor algebra compilation |
0.8 | 1 | 2024 | Compiler Support for Sparse Tensor Convolutions · Proc. ACM Program. Lang. 2024 |
Program analysis › static analysis
pointer analysis |
0.7 | 2 | 2022 | PUS: A Fast and Highly Efficient Solver for Inclusion-based Pointer Analysis · ICSE 2022 When threads meet events: efficient and precise static race detection with origins · PLDI 2021 |
Program analysis
constraint solving |
0.6 | 1 | 2022 | PUS: A Fast and Highly Efficient Solver for Inclusion-based Pointer Analysis · ICSE 2022 |
Program analysis › static analysis › pointer analysis
inclusion-based points-to analysis |
0.6 | 1 | 2022 | PUS: A Fast and Highly Efficient Solver for Inclusion-based Pointer Analysis · ICSE 2022 |
Program analysis › concurrent program analysis
static race detection |
0.5 | 1 | 2021 | When threads meet events: efficient and precise static race detection with origins · PLDI 2021 |
Systems and software security
memory safety |
0.4 | 1 | 2020 | Securing unsafe rust programs with XRust · ICSE 2020 |
Systems and software security › memory safety
unsafe rust |
0.4 | 1 | 2020 | Securing unsafe rust programs with XRust · ICSE 2020 |
Concurrent programming
concurrency bugs |
0.4 | 1 | 2020 | OMPRacer: a scalable and precise static race detector for OpenMP programs · SC 2020 |
Programming languages and type systems
language design |
0.4 | 1 | 2020 | Securing unsafe rust programs with XRust · ICSE 2020 |
Programming languages and type systems › rust
rust type system |
0.4 | 1 | 2020 | Securing unsafe rust programs with XRust · ICSE 2020 |
Computer vision › 3D vision › point cloud processing
sparse convolution |
0.2 | 1 | 2024 | Compiler Support for Sparse Tensor Convolutions · Proc. ACM Program. Lang. 2024 |
Methods — techniques the papers use, named apart from their topics
loop generation · 1.5affine subscript expression rewriting · 1.5sparse array compilation · 0.8loop fusion · 0.8wave propagation · 0.6deep propagation · 0.6causality subgraph · 0.6static analysis · 0.5type system bypass analysis · 0.4happens-before tracking · 0.4flow-sensitive interprocedural analysis · 0.4
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | Compiler Support for Sparse Tensor ConvolutionsabstractThis paper extends prior work on sparse tensor algebra compilers to generate asymptotically efficient code for tensor expressions with affine subscript expressions. Our technique enables compiler support for a wide range of sparse computations, including sparse convolutions and pooling that are widely used in ML and graphics applications. We propose an approach that gradually rewrites compound subscript expressions to simple subscript expressions with loops that exploit the sparsity pattern of the input sparse tensors. As a result, the time complexity of the generated kernels is bounded by the number of stored elements and not by the shape of the tensors. Our approach seamlessly integrates into existing frameworks and is compatible with recent advances in compilers for sparse computations, including the flexibility to efficiently handle arbitrary combinations of different sparse tensor formats. The implementation of our algorithm is open source and upstreamed to the MLIR sparse compiler. Experimental results show that our method achieves 19.5x speedup when compared with the state-of-the-art compiler-based method at 99.9% sparsity. The generated sparse kernels start to outperform dense convolution implementations at about 80% sparsity Peiming Liu, Alexander J. Root, Anlun Xu, Yinying Li, Fredrik Kjolstad, Aart J. C. Bik |
Proc. ACM Program. Lang. | 1 |
| 2024 | Compilation of Shape Operators on Sparse ArraysabstractWe show how to build a compiler for a sparse array language that supports shape operators such as reshaping or concatenating arrays, in addition to compute operators. Existing sparse array programming systems implement generic shape operators for only some sparse data structures, reduce shape operators on other data structures to those, and do not support fusion. Our system compiles sparse array expressions to code that efficiently iterates over reshaped views of irregular sparse data structures, without needing to materialize temporary storage for intermediates. Our evaluation shows that our approach generates sparse array code competitive with popular sparse array libraries: our generated shape operators achieve geometric mean speed-ups of 1.66×–15.3× when compared to hand-written kernels in scipy.sparse and 1.67×–651× when compared to generic implementations in pydata/sparse . For operators that require data structure conversions in these libraries, our generated code achieves geometric mean speed-ups of 7.29×–13.0× when compared to scipy.sparse and 21.3×–511× when compared to pydata/sparse . Finally, our evaluation demonstrates that fusing shape and compute operators improves the performance of several expressions by geometric mean speed-ups of 1.22×–2.23×. Alexander J. Root, Bobby Yan, Peiming Liu, Christophe Gyurgyik, Aart J. C. Bik, Fredrik Kjolstad |
Proc. ACM Program. Lang. | 3 |
| 2022 | PUS: A Fast and Highly Efficient Solver for Inclusion-based Pointer AnalysisabstractA crucial performance bottleneck in most interprocedural static analyses is solving pointer analysis constraints. We present Pus, a highly efficient solver for inclusion-based pointer analysis. At the heart of Pus is a new constraint solving algorithm that significantly advances the state-of-the-art. Unlike the existing algorithms (i.e., wave and deep propagation) which construct a holistic constraint graph, at each stage Pus only considers partial constraints that causally affect the final fixed-point computation. In each iteration Pus extracts a small causality subgraph and it guarantees that only processing the causality subgraph is sufficient to reach the same global fixed point. Our extensive evaluation of Pus on a wide range of real-world large complex programs yields highly promising results. Pus is able to analyze millions of lines of code such as PostgreSQL in 10 minutes on a commodity laptop. On average, Pus is more than 7× faster in solving context-sensitive constraints, and more than 2× faster in solving context-insensitive constraints compared to the state of the art wave and deep propagation algorithms. Moreover, Pus has been used to find tens of previous unknown bugs in high-profile codebases including Linux, Redis, and Memcached. Peiming Liu, Bradley Swain, Jeff Huang 0001 |
ICSE | 1 |
| 2021 | When threads meet events: efficient and precise static race detection with originsabstractData races are among the worst bugs in software in that they exhibit non-deterministic symptoms and are notoriously difficult to detect. The problem is exacerbated by interactions between threads and events in real-world applications. We present a novel static analysis technique, O2, to detect data races in large complex multithreaded and event-driven software. O2 is powered by “origins”, an abstraction that unifies threads and events by treating them as entry points of code paths attributed with data pointers. Origins in most cases are inferred automatically, but can also be specified by developers. More importantly, origins provide an efficient way to precisely reason about shared memory and pointer aliases. Bozhen Liu, Peiming Liu, Chia-Che Tsai, Dilma Da Silva, Jeff Huang 0001 |
PLDI | 2 |
| 2020 | Securing unsafe rust programs with XRustabstractRust is a promising systems programming language that embraces both high-level memory safety and low-level resource manipulation. However, the dark side of Rust, unsafe Rust, leaves a large security hole as it bypasses the Rust type system in order to support low-level operations. Recently, several real-world memory corruption vulnerabilities have been discovered in Rust's standard libraries. Peiming Liu, Jeff Huang 0001 |
ICSE | 1 |
| 2020 | OMPRacer: a scalable and precise static race detector for OpenMP programsabstractWe present OMPRACER, a static tool that uses flow-sensitive, interprocedural analysis to detect data races in OpenMP programs. OMPRACER is fast, scalable, has high code coverage, and supports the most common OpenMP features by combining state-of-the-art pointer analysis, novel value-flow analysis, happens-before tracking, and generalized modelling of OpenMP APIs. Unlike dynamic tools that currently dominate data race detection, OMPRACER achieves almost 100% code coverage using static analysis to detect a broader category of races without running the program or relying on specific input or runtime behaviour. OMPRACER has competitive precision with dynamic tools like Archer and ROMP: passing 105/116 cases in DataRaceBench with a total accuracy of 91%. OMPRACER has been used to analyze several Exascale Computing Project proxy applications containing over 2 million lines of code in under 10 minutes. OMPRACER has revealed previously unknown races in an ECP proxy app and a production simulation for COVID19. Bradley Swain, Peiming Liu, Ignacio Laguna, Giorgis Georgakoudis, Jeff Huang 0001 |
SC | 3 |