National Instruments latest incarnation of LabView, LabView 2010, was recently announced at NI Week 2010. This year brings the usual host of changes including major enhancements to the LabView compiler technology.
LabView 2009 was the first version to incorporate the Dataflow Intermediate Representation (DFIR). DFIR was an internal represenation utilized by the LabView compiler chain (Fig. 1). It matches the graphical G language used by LabView. DFIR allows manipulation by the compiler and LabView 2010 takes advantage of this to implement a number of transforms such as common subexpression reduction and dead code elimination (Fig. 2). These are common compiler optimization techniques being applied to G.
Another change in the compiler flow is the use of the Low Level Virtual Machine (LLVM). LLVM is an open source project that is a collection of modular and reusable compiler and toolchain technologies. LLVM handles the translation to machine code providing National Instrument's with a robust, open source platform. Subsequent improvements in LLVM will provide better performance to LabView applications.
The LabView compiler takes advantage of the following LLVM optimizations:
- Instruction combining
- Jump threading
- Scalar replacement of aggregates
- Conditional propagation
- Tail call elimination
- Expression reassociation
- Loop invariant code motion
- Loop unswitching and index splitting
- Induction variable simplification
- Loop unrolling
- Global value numbering
- Dead store elimination
- Aggressive dead code elimination
- Sparse conditional constant propagation
DFIR and LLVM provide performance improvements through optimization. This makes LabView applications faster. The improvement ranges from 20% to almost 200% depending upon the application. Even real time controls benefit from the compiler changes.
Customers Change LabView
National Instrument's listens to their customers. Just check out the LabView Idea Exchange website. For example, the boolean table interface had a little facelift (Fig. 3) in LabView 2010. This is where National Instrument's took a number of the new features from the LabView Idea Exchange (Fig. 4). I especially like the new wire labels.
Most of the ideas from the exchange are user interface enhancements. They are often the rough edges that rub designers the wrong way because features are hard to use or understand. Often changes like these can significantly improve some developers productivity.
Another area where developers will see improvement is with the addition of the device driver finder. There are hundreds of different device types that can be used with LabView from PXI boards to CompactRIO and Single Board RIO modules.
The Add-on Developer Program is also tied into delivery of even more interfaces. The LabView Tools Network is a home foro NI toolkits and third-party add-ons. Third-party add-ons on the LabVIEW Tools Network must meet National Instrument's Compatible with LabVIEW guidelines. An example is JKI's Add-Ons for LabView.