Version: 1.0.0

Loop Hoisting

Detect opportunities to hoist function calls that are invariant outside of loop bodies for efficiency.

Activate with --loop-hoisting.

Supported languages:

  • C/C++/ObjC: Yes
  • Java: Yes

This checker detects opportunities to hoist function calls that are invariant to outside of loop bodies. The hoisting analysis relies on purity analysis to determine whather a function is pure or not.

It has an additional mode that reports loop-invariant functions that are expensive (i.e. at least linear). This is enabled by the flag --hoisting-report-only-expensive.

List of Issue Types

The following issue types are reported by this checker: