LabWindows™/CVI™ Compiler Optimization Levels

Updated May 11, 2018

Reported In

Software

  • LabWindows/CVI

Issue Details

The compiler in LabWindows/CVI 2013 and later supports optimization for space and three different optimization levels for speed that can be configured in the Build Options. What is the difference between the three optimization levels for speed?
 

Solution

LabWindows/CVI 2013 and later uses the Clang compiler C frontend and LLVM compiler infrastructure to optimize applications for either space or speed. LabWindows/CVI allows the user to configure which of the LLVM speed optimizations are used when compiling an applications with a set of three levels of optimization aggressiveness. Level 1 optimization is least aggressive and level 3 is most aggressive. Each of the three levels uses a set of transform passes (i.e. optimization options) to determine which optimizations are performed. The following lists contain the transform passes used for each optimization level: 
 

Level 1

Level 1 also includes three undocumented transforms.
  • -early-cse
  • -correlated-propagation
  • -loop-idiom
 

Level 2 (includes level 1)

 

Level 3 (includes level 1 and level 2)

WAS THIS ARTICLE HELPFUL?

Not Helpful