Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Chihong Zhang

dblp:75/3345 · DBLP profile ↗
← Back
5ranked-venue papers
1as first author
0since 2021 · last 2003
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 4Software engineering, systems software and programming languages · 1 · 1 first-author

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
2 papers
Compilers and program optimization · 94% Program analysis · 6%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Processor architecture and microarchitecture · 100%

Topics — the 8 heaviest of 8, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization
instruction scheduling
0.012003
Minimum Register Instruction Sequencing to Reduce Register Spills in Out-of-Order Issue Superscalar Architectures · IEEE Trans. Computers 2003
Compilers and program optimization
register allocation
0.012003
Minimum Register Instruction Sequencing to Reduce Register Spills in Out-of-Order Issue Superscalar Architectures · IEEE Trans. Computers 2003
Compilers and program optimization › register allocation
register pressure reduction
0.012003
Minimum Register Instruction Sequencing to Reduce Register Spills in Out-of-Order Issue Superscalar Architectures · IEEE Trans. Computers 2003
Processor architecture and microarchitecture › superscalar processor
superscalar out-of-order processor
0.012003
Minimum Register Instruction Sequencing to Reduce Register Spills in Out-of-Order Issue Superscalar Architectures · IEEE Trans. Computers 2003
Compilers and program optimization › instruction scheduling
instruction-level parallelism
0.011993
GPMB - software pipelining branch-intensive loops · MICRO 1993
Compilers and program optimization › dynamic optimization
profile-guided optimization
0.011993
GPMB - software pipelining branch-intensive loops · MICRO 1993
Compilers and program optimization › instruction scheduling
software pipelining
0.011993
GPMB - software pipelining branch-intensive loops · MICRO 1993
Program analysis
static analysis
0.011993
GPMB - software pipelining branch-intensive loops · MICRO 1993

Methods — techniques the papers use, named apart from their topics

integer linear programming · 0.1heuristic lineage fusion · 0.1static program analysis · 0.0branch prediction · 0.0
YearPublicationVenuePosition
2003 Minimum Register Instruction Sequencing to Reduce Register Spills in Out-of-Order Issue Superscalar Architectures
abstract
In this paper, we address the problem of generating an optimal instruction sequence S for a Directed Acyclic Graph (DAG), where S is optimal in terms of the number of registers used. We call this the Minimum Register Instruction Sequence (MRIS) problem. The motivation for revisiting the MRIS problem stems from several modern architecture innovations/requirements that has put the instruction sequencing problem in a new context. We develop an efficient heuristic solution for the MRIS problem. This solution is based on the notion of instruction lineage-a set of instructions that can definitely share a single register. The formation of lineages exploits the structure of the dependence graph to facilitate the sharing of registers not only among instructions within a lineage, but also across lineages. Our efficient heuristics to "fuse" lineages further reduce the register requirement. This reduced register requirement results in generating a code sequence with fewer register spills. We have implemented our solution in the MIPSpro production compiler and measured its performance on the SPEC95 floating point benchmark suite. Our experimental results demonstrate that the proposed instruction sequencing method significantly reduces the number of spill loads and stores inserted in the code, by more than 50 percent in each of the benchmarks. Our approach reduces the average number of dynamic loads and stores executed by 10.4 percent and 3.7 percent, respectively. Further, our approach improves the execution time of the benchmarks on an average by 3.2 percent. In order to evaluate how efficiently our heuristics find a near-optimal solution to the MRIS problem, we develop an elegant integer linear programming formulation for the MRIS problem. Using a commercial integer linear programming solver, we obtain the optimal solution for the MRIS problem. Comparing the optimal solution from the integer linear programming tool with our heuristic solution reveals that, in a very large majority (99.2 percent) of the cases, our heuristic solution is optimal. For this experiment, we used a set of 675 dependence graphs representing basic blocks extracted from scientific benchmark programs.
R. Govindarajan, José Nelson Amaral, Chihong Zhang, Guang R. Gao
IEEE Trans. Computers4
2001 Minimum Register Instruction Sequence Problem: Revisiting Optimal Code Generation for DAGs
abstract
We revisit the optimal code generation or evaluation order determination problem-the problem of generating an instruction sequence from a data dependence graph (DDG). In particular, we are interested in generating an instruction sequence S that is optimal in terms of the number of registers used by the sequence S. We call this MRIS (Minimum Register Instruction Sequence) problem. We developed an efficient heuristic solution for the MRIS problem based on the notion of instruction lineage. This solution facilitates the sharing of registers among instructions within a lineage and across lineages by exploiting the structure of a DDG. We implemented our solution on a production compiler and measured the reduction in the number of (spill) loads and (Spill) stores and the wall-clock execution time for the SPEC95 floating point benchmark suite. On average our method reduced the number of loads and stores by 11.5% and 15.9%, respectively, and decreased the total execution time by 2.5%.
R. Govindarajan, Chihong Zhang, José Nelson Amaral, Guang R. Gao
IPDPS3
1999 Efficient State-Diagram Construction Methods for Software Pipelining
Chihong Zhang, R. Govindarajan, Sean Ryan, Guang R. Gao
CC1
1993 GPMB - software pipelining branch-intensive loops
abstract
Compile-time code transformations which expose instruction-level parallelism (ILP) typically take into account the constraints imposed by all execution scenarios in the program. However, there are additional opportunities to increase ILP along some execution sequences if the constraints from alternative execution sequences can be ignored. Traditionally, profile information has been used to identify important execution sequences for aggressive compiler optimization and scheduling. The paper presents a set of static program analysis heuristics used in the IMPACT compiler to identify execution sequences for aggressive optimization. The authors show that the static program analysis heuristics identify execution sequences without hazardous conditions that tend to prohibit compiler optimizations. As a result, the static program analysis approach often achieves optimization results comparable to profile information in spite of its inferior branch prediction accuracies. This observation makes a strong case for using static program analysis with or without profile information to facilitate aggressive compiler optimization and scheduling.>
Zhizhong Tang, Chihong Zhang, Bogong Su, Stanley Habib
MICRO3
1993 URPR-1: A single-chip VLIW architecture
Bogong Su, Jian Wang 0046, Zhizhong Tang, Chihong Zhang
Microprocess. Microprogramming4