Jlm
Public Member Functions | Static Public Member Functions | List of all members
jlm::llvm::LoopUnswitchingDefaultHeuristic Class Referencefinal

#include <LoopUnswitching.hpp>

Inheritance diagram for jlm::llvm::LoopUnswitchingDefaultHeuristic:
Inheritance graph
[legend]
Collaboration diagram for jlm::llvm::LoopUnswitchingDefaultHeuristic:
Collaboration graph
[legend]

Public Member Functions

 ~LoopUnswitchingDefaultHeuristic () noexcept override
 
bool shouldUnswitchLoop (ThetaGammaPredicateCorrelation &correlation) const noexcept override
 
- Public Member Functions inherited from jlm::llvm::LoopUnswitchingHeuristic
virtual ~LoopUnswitchingHeuristic () noexcept
 

Static Public Member Functions

static std::shared_ptr< const LoopUnswitchingDefaultHeuristiccreate ()
 

Detailed Description

Default heuristic for loop unswitching. The heuristic checks that there are no structural nodes as part of the shared predicate nodes between the theta and gamma node. The reasoning is that the predicate nodes are duplicated, which would mean that we would duplicate conditionals and loops if we would permit structural nodes as part of the predicate nodes.

Definition at line 44 of file LoopUnswitching.hpp.

Constructor & Destructor Documentation

◆ ~LoopUnswitchingDefaultHeuristic()

jlm::llvm::LoopUnswitchingDefaultHeuristic::~LoopUnswitchingDefaultHeuristic ( )
overridedefaultnoexcept

Member Function Documentation

◆ create()

std::shared_ptr< const LoopUnswitchingDefaultHeuristic > jlm::llvm::LoopUnswitchingDefaultHeuristic::create ( )
static

Definition at line 45 of file LoopUnswitching.cpp.

◆ shouldUnswitchLoop()

bool jlm::llvm::LoopUnswitchingDefaultHeuristic::shouldUnswitchLoop ( ThetaGammaPredicateCorrelation correlation) const
overridevirtualnoexcept

Implements jlm::llvm::LoopUnswitchingHeuristic.

Definition at line 26 of file LoopUnswitching.cpp.


The documentation for this class was generated from the following files: