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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Philip H. Sweany

dblp:s/PhilipHSweany · DBLP profile ↗
← Back
11ranked-venue papers
1as first author
0since 2021 · last 2014
—ORCID · none

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

Systems, architecture and hardware · 7 · 1 first-authorSoftware engineering, systems software and programming languages · 3Human-computer interaction and ubiquitous computing · 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
2 papers
Compilers and program optimization · 100%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Processor architecture and microarchitecture · 100%

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

TopicWeightPapersLastEvidence papers
Compilers and program optimization › instruction scheduling
global instruction scheduling
0.011992
Dominator-path scheduling: a global scheduling method · MICRO 1992
Compilers and program optimization
instruction scheduling
0.011992
Dominator-path scheduling: a global scheduling method · MICRO 1992
Compilers and program optimization › compiler construction
retargetable compilation
0.011988
Horizon: A Retargetable Compiler for Horizontal Microarchitectures · IEEE Trans. Software Eng. 1988
Processor architecture and microarchitecture
instruction-level parallelism
0.011992
Dominator-path scheduling: a global scheduling method · MICRO 1992
Processor architecture and microarchitecture
superscalar processor
0.011992
Dominator-path scheduling: a global scheduling method · MICRO 1992

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

dominator tree · 0.0retargeting · 0.0microcode optimization · 0.0
YearPublicationVenuePosition
2014 Debugging teacher certification (abstract only)
abstract
The need for workers in the information technology and computing industry is on the rise. Code.org estimates that by 2020, there will be more that 1 million more computer jobs available than there will be computer science graduates to fill them. Efforts, by organizations such as the Computer Science Teachers Association (CSTA) and code.org, to attract students to information technology and computing appear to be working. While it appears that there will be students to teach, will there be qualified teachers to teach them? The CSTA report "Bugs in the System: Computer Science Teacher Certification in the U.S." asserts that the "certification/licensure processes for Computer Science in the U.S. are deeply flawed." The goal of this session is to bring together educators from the high school and college level to discuss what the CS Education community needs to do to address this problem.
Jian Zhang 0036, Philip H. Sweany
SIGCSE2
2008 FPGA implementations of elliptic curve cryptography and Tate pairing over a binary field
Philip H. Sweany, Dijiang Huang
J. Syst. Archit.3
2007 Feasibility of decoupling memory management from the execution pipeline
Wentong Li 0003, Mehran Rezaei, Krishna M. Kavi, Afrin Naz, Philip H. Sweany
J. Syst. Archit.5
2004 Automatic data partitioning for the agere payload plus network processor
abstract
With the ever-increasing pervasiveness of the Internet and its stringent performance requirements, network system designers have begun utilizing specialized chips to increase the performance of network functions. To increase performance, many more advanced functions, such as traffic shaping and policing, are being implemented at the network interface layer to reduce delays that occur when these functions are handled by a general-purpose CPU. While some designs use ASICs to handle network functions, many system designers have moved toward using programmable network processors due to their increased exibility and lower design cost. In this paper, we describe a code generation technique designed for the Agere Payload Plus network processor. This processor utilizes a multi-block pipeline containing a Fast Pattern Processor (FPP) for classification, a Routing Switch Processor (RSP) for traffic management and a third block, the Agere Systems Interface (ASI), which provides additional functionality for performance. This paper focuses on code generation for the clustered VLIW compute engines on the RSP. Currently, due to the real-time nature of the applications run on the APP, the programmer must lay out and partition the application-specific data by hand to get good performance.The major contribution of this paper is to remove the need for hand partitioning for the RSP compute engines. We propose both a greedy code-generation approach that achieves harmonic mean performance equal to code that has been hand partitioned by an application programmer and a genetic algorithm that achieves a harmonic mean speedup of 1.08 over the same hand-partitioned code. Achieving harmonic mean performance that is equal to or better than hand partitioning removes the need to hand code for performance. This allows the programmer to spend more time on algorithm development.
Steve Carr 0001, Philip H. Sweany
CASES2
2003 An experimental evaluation of scalar replacement on scientific benchmarks
abstract
Abstract This paper describes our experiments comparing multiple scalar replacement algorithms to evaluate their effectiveness on entire scientific application benchmarks within the context of a production‐level compiler. We investigate at what point aggressive scalar replacement becomes detrimental and which dependence tests are necessary to give scalar replacement enough information to be effective. As many commercial optimizing compilers may include some version of scalar replacement as an optimization, it is important to determine how aggressive these algorithms need to be. Previously, no study has examined ‘how much’ scalar replacement is sufficient and effective within the context of an existing highly optimizing compiler. Our experiments show that, on whole programs, simple algorithms and simple dependence analysis capture nearly all opportunities for scalar replacement found in scientific application benchmarks. While additional aggressiveness may lead to some performance gain in some individual loops, it also leads to performance degradation too often to be worth the risk when considering entire applications. Algorithms restricted to value reuse over at most one loop iteration and to fully redundant array references give the best results. Our experiment further shows that scalar replacement is not only an effective optimization, but also a feasible one for commercial optimizers since the simple algorithms are not computationally expensive. Based upon our findings, we conclude that scalar replacement ought to be a part of any highly optimizing compiler because of its low cost and significant potential gain. Copyright © 2003 John Wiley & Sons, Ltd.
Steve Carr 0001, Philip H. Sweany
Softw. Pract. Exp.2
2000 Register Assignment for Software Pipelining with Partitioned Register Banks
abstract
Many techniques for increasing the amount of instruction-level parallelism (ILP) put increased pressure on the registers inside a CPU. These techniques allow for more operations to occur simultaneously at the cost of requiring more registers to hold the operands and results of those operations, and importantly, more ports on the register banks to allow for concurrent access to the data. One approach of ameliorating the number of ports on a register bank (the cost of ports in gates varies as N/sup 2/ where N is the number of ports, and adding ports increases access time) is to have multiple register banks with fewer ports, each attached to a subset of the available functional units. This reduces the number of ports needed on a per-bank basis, but can slow operations if a necessary value is not in an attached register bank as copy operations must be inserted. Therefore, there is a circular dependence between assigning operations to functional units and assigning values to register banks. We describe an approach that produces good code by separating partitioning from scheduling and register assignment. Our method is independent of both the scheduling technique and register assignment method used.
Jason Hiser, Steve Carr 0001, Philip H. Sweany, Steven J. Beaty
IPDPS3
1998 Building a Retargetable Local Instruction Scheduler
abstract
While high-performance architectures have included some Instruction-Level Parallelism (ILP) for at least 25 years, recent computer designs have exploited ILP to a significant degree. Although a local scheduler is not sufficient for generation of excellent ILP code, it is necessary as many global scheduling and software pipelining techniques rely on a local scheduler. Global scheduling techniques are well-documented, yet practical discussions of local schedulers are notable in their absence. This paper strives to remedy that disparity by describing a list scheduling framework and several important practical details that, taken together, allow implementation of an efficient local instruction scheduler that is easily retargetable for ILP architectures. The foundation of our machine-independent instruction scheduler is a timing model that allows easy retargetability to a wide range of architectures. In addition to describing how a general list-scheduler can be implemented within the framework of our timing model, experimental results indicate that lookahead scheduling can profoundly improve a scheduler's ability to produce a legal schedule. Further experimental data shows that deciding to schedule a data dependence DAG (DDD) in forward or reverse order depends significantly upon that target architecture, suggesting the possibility of scheduling in each direction and using the best of the two schedules. In contrast, experiments demonstrate little difference in code quality for schedules generated by either instruction-driven or operation-driven schedulers. Thus, the inherent flexibility of operation-driven methods suggests including that approach in a retargetable instruction scheduler. List scheduling is, of course, a heuristic scheduling method. A variety of scheduling heuristics are presented. In addition, the paper describes a method, using a genetic algorithm search, to ‘fine-tune’ the weights of twenty-four individual heuristics to form a DDD-node heuristic tuned to a specific architecture. © 1998 John Wiley & Sons, Ltd.
Vicki H. Allan, Steven J. Beaty, Bogong Su, Philip H. Sweany
Softw. Pract. Exp.4
1997 Modulo Scheduling with Cache Reuse Information
Steve Carr 0001, Philip H. Sweany
Euro-Par3
1995 CRAIG: a practical framework for combining instruction scheduling and register assignment
Thomas S. Brasier, Philip H. Sweany, Steven J. Beaty, Steve Carr 0001
PACT2
1992 Dominator-path scheduling: a global scheduling method
abstract
Dominator-path scheduling performs global instruction scheduling of paths in the dominator tree. Unlike other global scheduling methods, dominator-path scheduling does not require copies of operations to preserve program semantics. In a limited test suite for a typical superscalar architecture, dominator-path scheduling produces schedules requiring 8.3% fewer cycles than local scheduling alone. 1 Introduction Architectures exhibiting instruction-level parallelism (ILP), such as superscalar and superpipelined machines, are currently popular. To best exploit instruction-level parallelism in these machines, an instruction scheduling phase is required during compilation. Instruction scheduling is typically classified as local if it considers code only within a basic block and global if it schedules multiple basic blocks at once. Local scheduling methods are well known (see [Bea91] for one summary.) Local instruction scheduling's largest impediment is its inability to consider context from...
Philip H. Sweany, Steven J. Beaty
MICRO1
1988 Horizon: A Retargetable Compiler for Horizontal Microarchitectures
abstract
The vertical migration of complex application code into horizontal microcode makes traditional methods of handwritten and hand-optimized microcode with primitive assembly languages impractical. Higher-level languages that permit abstraction from low-level timing and concurrency details are considered a major step toward alleviating the problem. This approach is feasible only if compilers for these languages exist that can produce high-quality microcode and that can be targeted to new machines with modest effort and high reliability. An overview is provided of the Horizon retargetable microcode compiler, which facilitates the production of highly optimized microcode and the targeting of the compiler to specific machines.>
Robert A. Mueller, Michael R. Duda, Philip H. Sweany, Jack S. Walicki
IEEE Trans. Software Eng.3