Program Listing for File ParallelizeLoop.h

Program Listing for File ParallelizeLoop.h#

Return to documentation for file (src/midend/programTransformation/loopProcessing/driver/ParallelizeLoop.h)

#ifndef PARALLELIZE_LOOP_H
#define PARALLELIZE_LOOP_H

#include <LoopTransformOptions.h>
#include <CompSliceDepGraph.h>
#include <CompSliceLocality.h>

class LoopPar
{
 public:
  virtual LoopTransformOptions::OptType GetOptimizationType() =0;
  virtual LoopTreeNode* apply( const CompSliceDepGraphNode::FullNestInfo& nestInfo,
                                      LoopTreeDepComp& comp,
                                      DependenceHoisting &op,
                                      LoopTreeNode *&top)=0;

// DQ (12/6/2016): Added explicit virtual destructor to eliminate warning we want to be an error: -Wdelete-non-virtual-dtor.
   virtual ~LoopPar() {}
};

class ParallelizeBlocking : public LoopPar
{
  virtual LoopTreeNode* apply( const CompSliceDepGraphNode::FullNestInfo& nestInfo,
                                      LoopTreeDepComp& comp,
                                      DependenceHoisting &op,
                                      LoopTreeNode *&top);
  virtual LoopTransformOptions::OptType GetOptimizationType() { return LoopTransformOptions::PAR_LOOP_OPT; }


// DQ (12/6/2016): Added explicit virtual destructor to eliminate warning we want to be an error: -Wdelete-non-virtual-dtor.
  public:
       virtual ~ParallelizeBlocking() {}
};

#endif