Constant propagation with conditional branches
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Improving abstract interpretations by combining domains
ACM Transactions on Programming Languages and Systems (TOPLAS)
A flexible architecture for building data flow analyzers
Proceedings of the 18th international conference on Software engineering
Bidwidth analysis with application to silicon compilation
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Simplifying and Isolating Failure-Inducing Input
IEEE Transactions on Software Engineering
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
On the Efficient Engineering of Ambitious Program Analysis
IEEE Transactions on Software Engineering
Improving the Results of Static Analyses Programs by Local Decreasing Iteration
Proceedings of the 12th Conference on Foundations of Software Technology and Theoretical Computer Science
Generalized Constant Propagation: A Study in C
CC '96 Proceedings of the 6th International Conference on Compiler Construction
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs
CC '02 Proceedings of the 11th International Conference on Compiler Construction
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Flow analysis for verifying properties of concurrent software systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
Countersniper system for urban warfare
ACM Transactions on Sensor Networks (TOSN)
MiBench: A free, commercially representative embedded benchmark suite
WWC '01 Proceedings of the Workload Characterization, 2001. WWC-4. 2001 IEEE International Workshop
Deriving abstract transfer functions for analyzing embedded software
Proceedings of the 2006 ACM SIGPLAN/SIGBED conference on Language, compilers, and tool support for embedded systems
Mobile agent middleware for sensor networks: an application case study
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
Avrora: scalable sensor network simulation with precise timing
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
Efficient type and memory safety for tiny embedded systems
Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems
Interface contracts for TinyOS
Proceedings of the 6th international conference on Information processing in sensor networks
Offline compression for on-chip ram
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Interrupt Verification via Thread Verification
Electronic Notes in Theoretical Computer Science (ENTCS)
Efficient memory safety for TinyOS
Proceedings of the 5th international conference on Embedded networked sensor systems
Using sequencing to trigger a better analysis
ACM SIGBED Review - Special issue on the RTSS forum on deeply embedded real-time computing
Deriving State Machines from TinyOS Programs Using Symbolic Execution
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
Dataflow analysis for concurrent programs using datarace detection
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
Many abstract value domains such as intervals, bitwise, constants, and value-sets have been developed to support dataflow analysis. Different domains offer alternative tradeoffs between analysis speed and precision. Furthermore, some domains are a better match for certain kinds of code than others. This paper presents the design and implementation of cXprop, an analysis and transformation tool for C that implements "conditional X propagation," a generalization of the well-known conditional constant propagation algorithm where X is an abstract value domain supplied by the user. cXprop is interprocedural, context-insensitive, and achieves reasonable precision on pointer-rich codes. We have applied cXprop to sensor network programs running on TinyOS, in order to reduce code size through interprocedural dead code elimination, and to find limited-bitwidth global variables. Our analysis of global variables is supported by a novel concurrency model for interrupt-driven software. cXprop reduces TinyOS application code size by an average of 9.2% and predicts an average data size reduction of 8.2% through RAM compression.