[polly] r311802 - [Polly] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

Eugene Zelenko via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 25 14:35:27 PDT 2017


Author: eugenezelenko
Date: Fri Aug 25 14:35:27 2017
New Revision: 311802

URL: http://llvm.org/viewvc/llvm-project?rev=311802&view=rev
Log:
[Polly] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

Modified:
    polly/trunk/include/polly/PruneUnprofitable.h
    polly/trunk/include/polly/ScopDetection.h
    polly/trunk/include/polly/ScopDetectionDiagnostic.h
    polly/trunk/lib/Analysis/PruneUnprofitable.cpp
    polly/trunk/lib/Analysis/ScopDetection.cpp
    polly/trunk/lib/Analysis/ScopDetectionDiagnostic.cpp
    polly/trunk/lib/Transform/MaximalStaticExpansion.cpp

Modified: polly/trunk/include/polly/PruneUnprofitable.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/PruneUnprofitable.h?rev=311802&r1=311801&r2=311802&view=diff
==============================================================================
--- polly/trunk/include/polly/PruneUnprofitable.h (original)
+++ polly/trunk/include/polly/PruneUnprofitable.h Fri Aug 25 14:35:27 2017
@@ -11,20 +11,22 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef POLLY_ANALYSIS_PRUNEUNPROFITABLE_H
-#define POLLY_ANALYSIS_PRUNEUNPROFITABLE_H
+#ifndef POLLY_PRUNEUNPROFITABLE_H
+#define POLLY_PRUNEUNPROFITABLE_H
 
 namespace llvm {
-class PassRegistry;
+
 class Pass;
+class PassRegistry;
+
+void initializePruneUnprofitablePass(PassRegistry &);
+
 } // namespace llvm
 
 namespace polly {
+
 llvm::Pass *createPruneUnprofitablePass();
-} // namespace polly
 
-namespace llvm {
-void initializePruneUnprofitablePass(llvm::PassRegistry &);
-} // namespace llvm
+} // namespace polly
 
-#endif /* POLLY_ANALYSIS_PRUNEUNPROFITABLE_H */
+#endif // POLLY_PRUNEUNPROFITABLE_H

Modified: polly/trunk/include/polly/ScopDetection.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/ScopDetection.h?rev=311802&r1=311801&r2=311802&view=diff
==============================================================================
--- polly/trunk/include/polly/ScopDetection.h (original)
+++ polly/trunk/include/polly/ScopDetection.h Fri Aug 25 14:35:27 2017
@@ -1,4 +1,4 @@
-//===--- ScopDetection.h - Detect Scops -------------------------*- C++ -*-===//
+//===- ScopDetection.h - Detect Scops ---------------------------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -44,38 +44,58 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef POLLY_SCOP_DETECTION_H
-#define POLLY_SCOP_DETECTION_H
+#ifndef POLLY_SCOPDETECTION_H
+#define POLLY_SCOPDETECTION_H
 
 #include "polly/ScopDetectionDiagnostic.h"
 #include "polly/Support/ScopHelper.h"
+#include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SetVector.h"
+#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/StringRef.h"
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/Analysis/AliasSetTracker.h"
-#include "llvm/Analysis/OptimizationDiagnosticInfo.h"
 #include "llvm/Analysis/RegionInfo.h"
+#include "llvm/Analysis/ScalarEvolutionExpressions.h"
 #include "llvm/Pass.h"
+#include <algorithm>
 #include <map>
 #include <memory>
 #include <set>
+#include <string>
+#include <utility>
+#include <vector>
 
 using namespace llvm;
 
 namespace llvm {
-class LoopInfo;
+
+class BasicBlock;
+class BranchInst;
+class CallInst;
+class DebugLoc;
+class DominatorTree;
+class Function;
+class Instruction;
+class IntrinsicInst;
 class Loop;
+class LoopInfo;
+class OptimizationRemarkEmitter;
+class PassRegistry;
+class raw_ostream;
 class ScalarEvolution;
 class SCEV;
-class SCEVAddRecExpr;
 class SCEVUnknown;
-class CallInst;
-class Instruction;
+class SwitchInst;
 class Value;
-class IntrinsicInst;
+
+void initializeScopDetectionWrapperPassPass(PassRegistry &);
+
 } // namespace llvm
 
 namespace polly {
-typedef std::set<const SCEV *> ParamSetType;
+
+using ParamSetType = std::set<const SCEV *>;
 
 // Description of the shape of an array.
 struct ArrayShape {
@@ -85,7 +105,7 @@ struct ArrayShape {
   // Sizes of each delinearized dimension.
   SmallVector<const SCEV *, 4> DelinearizedSizes;
 
-  ArrayShape(const SCEVUnknown *B) : BasePointer(B), DelinearizedSizes() {}
+  ArrayShape(const SCEVUnknown *B) : BasePointer(B) {}
 };
 
 struct MemAcc {
@@ -98,14 +118,14 @@ struct MemAcc {
   SmallVector<const SCEV *, 4> DelinearizedSubscripts;
 
   MemAcc(const Instruction *I, std::shared_ptr<ArrayShape> S)
-      : Insn(I), Shape(S), DelinearizedSubscripts() {}
+      : Insn(I), Shape(S) {}
 };
 
-typedef std::map<const Instruction *, MemAcc> MapInsnToMemAcc;
-typedef std::pair<const Instruction *, const SCEV *> PairInstSCEV;
-typedef std::vector<PairInstSCEV> AFs;
-typedef std::map<const SCEVUnknown *, AFs> BaseToAFs;
-typedef std::map<const SCEVUnknown *, const SCEV *> BaseToElSize;
+using MapInsnToMemAcc = std::map<const Instruction *, MemAcc>;
+using PairInstSCEV = std::pair<const Instruction *, const SCEV *>;
+using AFs = std::vector<PairInstSCEV>;
+using BaseToAFs = std::map<const SCEVUnknown *, AFs>;
+using BaseToElSize = std::map<const SCEVUnknown *, const SCEV *>;
 
 extern bool PollyTrackFailures;
 extern bool PollyDelinearize;
@@ -116,14 +136,14 @@ extern bool PollyAllowUnsignedOperations
 extern bool PollyAllowFullFunction;
 
 /// A function attribute which will cause Polly to skip the function
-extern llvm::StringRef PollySkipFnAttr;
+extern StringRef PollySkipFnAttr;
 
 //===----------------------------------------------------------------------===//
 /// Pass to detect the maximal static control parts (Scops) of a
 /// function.
 class ScopDetection {
 public:
-  typedef SetVector<const Region *> RegionSet;
+  using RegionSet = SetVector<const Region *>;
 
   // Remember the valid regions
   RegionSet ValidRegions;
@@ -151,13 +171,13 @@ public:
     BaseToElSize ElementSize;
 
     /// The region has at least one load instruction.
-    bool hasLoads;
+    bool hasLoads = false;
 
     /// The region has at least one store instruction.
-    bool hasStores;
+    bool hasStores = false;
 
     /// Flag to indicate the region has at least one unknown access.
-    bool HasUnknownAccess;
+    bool HasUnknownAccess = false;
 
     /// The set of non-affine subregions in the region we analyze.
     RegionSet NonAffineSubRegionSet;
@@ -174,8 +194,7 @@ public:
 
     /// Initialize a DetectionContext from scratch.
     DetectionContext(Region &R, AliasAnalysis &AA, bool Verify)
-        : CurRegion(R), AST(AA), Verifying(Verify), Log(&R), hasLoads(false),
-          hasStores(false), HasUnknownAccess(false) {}
+        : CurRegion(R), AST(AA), Verifying(Verify), Log(&R) {}
 
     /// Initialize a DetectionContext with the data from @p DC.
     DetectionContext(const DetectionContext &&DC)
@@ -495,7 +514,7 @@ private:
   /// Check if the function @p F is marked as invalid.
   ///
   /// @note An OpenMP subfunction will be marked as invalid.
-  bool isValidFunction(llvm::Function &F);
+  bool isValidFunction(Function &F);
 
   /// Can ISL compute the trip count of a loop.
   ///
@@ -506,7 +525,7 @@ private:
   bool canUseISLTripCount(Loop *L, DetectionContext &Context) const;
 
   /// Print the locations of all detected scops.
-  void printLocations(llvm::Function &F);
+  void printLocations(Function &F);
 
   /// Check if a region is reducible or not.
   ///
@@ -569,8 +588,8 @@ public:
   /// These iterators iterator over all maximum region in Scops of this
   /// function.
   //@{
-  typedef RegionSet::iterator iterator;
-  typedef RegionSet::const_iterator const_iterator;
+  using iterator = RegionSet::iterator;
+  using const_iterator = RegionSet::const_iterator;
 
   iterator begin() { return ValidRegions.begin(); }
   iterator end() { return ValidRegions.end(); }
@@ -617,15 +636,20 @@ public:
 
 struct ScopAnalysis : public AnalysisInfoMixin<ScopAnalysis> {
   static AnalysisKey Key;
+
   using Result = ScopDetection;
+
   ScopAnalysis();
+
   Result run(Function &F, FunctionAnalysisManager &FAM);
 };
 
 struct ScopAnalysisPrinterPass : public PassInfoMixin<ScopAnalysisPrinterPass> {
-  ScopAnalysisPrinterPass(raw_ostream &O) : Stream(O) {}
+  ScopAnalysisPrinterPass(raw_ostream &OS) : OS(OS) {}
+
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);
-  raw_ostream &Stream;
+
+  raw_ostream &OS;
 };
 
 struct ScopDetectionWrapperPass : public FunctionPass {
@@ -633,23 +657,19 @@ struct ScopDetectionWrapperPass : public
   std::unique_ptr<ScopDetection> Result;
 
   ScopDetectionWrapperPass();
+
   /// @name FunctionPass interface
   //@{
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const;
-  virtual void releaseMemory();
-  virtual bool runOnFunction(Function &F);
-  virtual void print(raw_ostream &OS, const Module *) const;
+  void getAnalysisUsage(AnalysisUsage &AU) const override;
+  void releaseMemory() override;
+  bool runOnFunction(Function &F) override;
+  void print(raw_ostream &OS, const Module *) const override;
   //@}
 
   ScopDetection &getSD() { return *Result; }
   const ScopDetection &getSD() const { return *Result; }
 };
 
-} // end namespace polly
-
-namespace llvm {
-class PassRegistry;
-void initializeScopDetectionWrapperPassPass(llvm::PassRegistry &);
-} // namespace llvm
+} // namespace polly
 
-#endif
+#endif // POLLY_SCOPDETECTION_H

Modified: polly/trunk/include/polly/ScopDetectionDiagnostic.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/ScopDetectionDiagnostic.h?rev=311802&r1=311801&r2=311802&view=diff
==============================================================================
--- polly/trunk/include/polly/ScopDetectionDiagnostic.h (original)
+++ polly/trunk/include/polly/ScopDetectionDiagnostic.h Fri Aug 25 14:35:27 2017
@@ -1,4 +1,4 @@
-//=== ScopDetectionDiagnostic.h -- Diagnostic for ScopDetection -*- C++ -*-===//
+//===- ScopDetectionDiagnostic.h - Diagnostic for ScopDetection -*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -17,29 +17,32 @@
 // to diagnose the error and generate a helpful error message.
 //
 //===----------------------------------------------------------------------===//
-#ifndef POLLY_SCOP_DETECTION_DIAGNOSTIC_H
-#define POLLY_SCOP_DETECTION_DIAGNOSTIC_H
+
+#ifndef POLLY_SCOPDETECTIONDIAGNOSTIC_H
+#define POLLY_SCOPDETECTIONDIAGNOSTIC_H
 
 #include "llvm/ADT/SmallVector.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/ADT/Twine.h"
-#include "llvm/Analysis/AliasSetTracker.h"
 #include "llvm/Analysis/LoopInfo.h"
-#include "llvm/Analysis/OptimizationDiagnosticInfo.h"
-#include "llvm/Analysis/ScalarEvolutionExpressions.h"
-#include "llvm/IR/BasicBlock.h"
-#include "llvm/IR/Value.h"
-#include "llvm/Support/Casting.h"
+#include "llvm/IR/DebugLoc.h"
+#include "llvm/IR/Instruction.h"
+#include <cstddef>
 #include <memory>
 #include <string>
+#include <utility>
+#include <vector>
 
 using namespace llvm;
 
 namespace llvm {
-class SCEV;
+
+class AliasSet;
 class BasicBlock;
-class Value;
+class OptimizationRemarkEmitter;
+class raw_ostream;
 class Region;
+class SCEV;
+class Value;
+
 } // namespace llvm
 
 namespace polly {
@@ -54,6 +57,7 @@ BBPair getBBPairForRegion(const Region *
 void getDebugLocations(const BBPair &P, DebugLoc &Begin, DebugLoc &End);
 
 class RejectLog;
+
 /// Emit optimization remarks about the rejected regions to the user.
 ///
 /// This emits the content of the reject log as optimization remarks.
@@ -111,7 +115,6 @@ enum class RejectReasonKind {
 /// diagnostic information to help clients figure out what and where something
 /// went wrong in the Scop detection.
 class RejectReason {
-  //===--------------------------------------------------------------------===//
 private:
   const RejectReasonKind Kind;
 
@@ -119,11 +122,11 @@ protected:
   static const DebugLoc Unknown;
 
 public:
-  RejectReasonKind getKind() const { return Kind; }
-
   RejectReason(RejectReasonKind K);
 
-  virtual ~RejectReason() {}
+  virtual ~RejectReason() = default;
+
+  RejectReasonKind getKind() const { return Kind; }
 
   /// Generate the remark name to identify this remark.
   ///
@@ -153,20 +156,20 @@ public:
   /// Get the source location of this error.
   ///
   /// @return The debug location for this error.
-  virtual const llvm::DebugLoc &getDebugLoc() const;
+  virtual const DebugLoc &getDebugLoc() const;
 };
 
-typedef std::shared_ptr<RejectReason> RejectReasonPtr;
+using RejectReasonPtr = std::shared_ptr<RejectReason>;
 
 /// Stores all errors that occurred during the detection.
 class RejectLog {
   Region *R;
-  llvm::SmallVector<RejectReasonPtr, 1> ErrorReports;
+  SmallVector<RejectReasonPtr, 1> ErrorReports;
 
 public:
   explicit RejectLog(Region *R) : R(R) {}
 
-  typedef llvm::SmallVector<RejectReasonPtr, 1>::const_iterator iterator;
+  using iterator = SmallVector<RejectReasonPtr, 1>::const_iterator;
 
   iterator begin() const { return ErrorReports.begin(); }
   iterator end() const { return ErrorReports.end(); }
@@ -189,7 +192,6 @@ public:
 /// Scop candidates that violate structural restrictions can be grouped under
 /// this reject reason class.
 class ReportCFG : public RejectReason {
-  //===--------------------------------------------------------------------===//
 public:
   ReportCFG(const RejectReasonKind K);
 
@@ -215,10 +217,10 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
   //@}
 };
 
@@ -239,11 +241,11 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual std::string getEndUserMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  std::string getEndUserMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
   //@}
 };
 
@@ -265,11 +267,11 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual std::string getEndUserMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  std::string getEndUserMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
   //@}
 };
 
@@ -279,8 +281,6 @@ public:
 /// Scop candidates that violate restrictions to affinity are reported under
 /// this class.
 class ReportAffFunc : public RejectReason {
-  //===--------------------------------------------------------------------===//
-
 protected:
   // The instruction that caused non-affinity to occur.
   const Instruction *Inst;
@@ -295,17 +295,13 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual const DebugLoc &getDebugLoc() const override {
-    return Inst->getDebugLoc();
-  }
+  const DebugLoc &getDebugLoc() const override { return Inst->getDebugLoc(); }
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures a condition that is based on an 'undef' value.
 class ReportUndefCond : public ReportAffFunc {
-  //===--------------------------------------------------------------------===//
-
   // The BasicBlock we found the broken condition in.
   BasicBlock *BB;
 
@@ -320,9 +316,9 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
   //@}
 };
 
@@ -331,8 +327,6 @@ public:
 ///
 /// Conditions have to be either constants or icmp instructions.
 class ReportInvalidCond : public ReportAffFunc {
-  //===--------------------------------------------------------------------===//
-
   // The BasicBlock we found the broken condition in.
   BasicBlock *BB;
 
@@ -347,17 +341,15 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures an undefined operand.
 class ReportUndefOperand : public ReportAffFunc {
-  //===--------------------------------------------------------------------===//
-
   // The BasicBlock we found the undefined operand in.
   BasicBlock *BB;
 
@@ -372,17 +364,15 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures a non-affine branch.
 class ReportNonAffBranch : public ReportAffFunc {
-  //===--------------------------------------------------------------------===//
-
   // The BasicBlock we found the non-affine branch in.
   BasicBlock *BB;
 
@@ -408,16 +398,15 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures a missing base pointer.
 class ReportNoBasePtr : public ReportAffFunc {
-  //===--------------------------------------------------------------------===//
 public:
   ReportNoBasePtr(const Instruction *Inst)
       : ReportAffFunc(RejectReasonKind::NoBasePtr, Inst) {}
@@ -429,16 +418,15 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures an undefined base pointer.
 class ReportUndefBasePtr : public ReportAffFunc {
-  //===--------------------------------------------------------------------===//
 public:
   ReportUndefBasePtr(const Instruction *Inst)
       : ReportAffFunc(RejectReasonKind::UndefBasePtr, Inst) {}
@@ -450,17 +438,15 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures a base pointer that is not invariant in the region.
 class ReportVariantBasePtr : public ReportAffFunc {
-  //===--------------------------------------------------------------------===//
-
   // The variant base pointer.
   Value *BaseValue;
 
@@ -476,18 +462,16 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual std::string getEndUserMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  std::string getEndUserMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures a non-affine access function.
 class ReportNonAffineAccess : public ReportAffFunc {
-  //===--------------------------------------------------------------------===//
-
   // The non-affine access function.
   const SCEV *AccessFunction;
 
@@ -509,18 +493,16 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual std::string getEndUserMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  std::string getEndUserMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Report array accesses with differing element size.
 class ReportDifferentArrayElementSize : public ReportAffFunc {
-  //===--------------------------------------------------------------------===//
-
   // The base pointer of the memory access.
   const Value *BaseValue;
 
@@ -536,18 +518,16 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual std::string getEndUserMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  std::string getEndUserMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures errors with non affine loop bounds.
 class ReportLoopBound : public RejectReason {
-  //===--------------------------------------------------------------------===//
-
   // The offending loop.
   Loop *L;
 
@@ -569,19 +549,17 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
-  virtual std::string getEndUserMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
+  std::string getEndUserMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures errors when loop has no exit.
 class ReportLoopHasNoExit : public RejectReason {
-  //===--------------------------------------------------------------------===//
-
   /// The loop that has no exit.
   Loop *L;
 
@@ -599,19 +577,17 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
-  virtual std::string getEndUserMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
+  std::string getEndUserMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures errors when not all loop latches are part of the scop.
 class ReportLoopOnlySomeLatches : public RejectReason {
-  //===--------------------------------------------------------------------===//
-
   /// The loop for which not all loop latches are part of the scop.
   Loop *L;
 
@@ -629,19 +605,17 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
-  virtual std::string getEndUserMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
+  std::string getEndUserMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures errors with non-side-effect-known function calls.
 class ReportFuncCall : public RejectReason {
-  //===--------------------------------------------------------------------===//
-
   // The offending call instruction.
   Instruction *Inst;
 
@@ -655,20 +629,19 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
-  virtual std::string getEndUserMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
+  std::string getEndUserMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures errors with aliasing.
 class ReportAlias : public RejectReason {
-  //===--------------------------------------------------------------------===//
 public:
-  typedef std::vector<const llvm::Value *> PointerSnapshotTy;
+  using PointerSnapshotTy = std::vector<const Value *>;
 
 private:
   /// Format an invalid alias set.
@@ -695,18 +668,17 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
-  virtual std::string getEndUserMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
+  std::string getEndUserMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Base class for otherwise ungrouped reject reasons.
 class ReportOther : public RejectReason {
-  //===--------------------------------------------------------------------===//
 public:
   ReportOther(const RejectReasonKind K);
 
@@ -717,16 +689,14 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual std::string getMessage() const override;
+  std::string getRemarkName() const override;
+  std::string getMessage() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures errors with bad IntToPtr instructions.
 class ReportIntToPtr : public ReportOther {
-  //===--------------------------------------------------------------------===//
-
   // The offending base value.
   Instruction *BaseValue;
 
@@ -740,17 +710,16 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures errors with alloca instructions.
 class ReportAlloca : public ReportOther {
-  //===--------------------------------------------------------------------===//
   Instruction *Inst;
 
 public:
@@ -763,17 +732,16 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures errors with unknown instructions.
 class ReportUnknownInst : public ReportOther {
-  //===--------------------------------------------------------------------===//
   Instruction *Inst;
 
 public:
@@ -786,17 +754,16 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures errors with regions containing the function entry block.
 class ReportEntry : public ReportOther {
-  //===--------------------------------------------------------------------===//
   BasicBlock *BB;
 
 public:
@@ -809,18 +776,17 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual std::string getEndUserMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  std::string getEndUserMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Report regions that seem not profitable to be optimized.
 class ReportUnprofitable : public ReportOther {
-  //===--------------------------------------------------------------------===//
   Region *R;
 
 public:
@@ -833,19 +799,17 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual std::string getEndUserMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  std::string getEndUserMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
   //@}
 };
 
 //===----------------------------------------------------------------------===//
 /// Captures errors with non-simple memory accesses.
 class ReportNonSimpleMemoryAccess : public ReportOther {
-  //===--------------------------------------------------------------------===//
-
   // The offending call instruction.
   Instruction *Inst;
 
@@ -859,14 +823,14 @@ public:
 
   /// @name RejectReason interface
   //@{
-  virtual std::string getRemarkName() const override;
-  virtual const Value *getRemarkBB() const override;
-  virtual std::string getMessage() const override;
-  virtual const DebugLoc &getDebugLoc() const override;
-  virtual std::string getEndUserMessage() const override;
+  std::string getRemarkName() const override;
+  const Value *getRemarkBB() const override;
+  std::string getMessage() const override;
+  const DebugLoc &getDebugLoc() const override;
+  std::string getEndUserMessage() const override;
   //@}
 };
 
 } // namespace polly
 
-#endif // POLLY_SCOP_DETECTION_DIAGNOSTIC_H
+#endif // POLLY_SCOPDETECTIONDIAGNOSTIC_H

Modified: polly/trunk/lib/Analysis/PruneUnprofitable.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/PruneUnprofitable.cpp?rev=311802&r1=311801&r2=311802&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/PruneUnprofitable.cpp (original)
+++ polly/trunk/lib/Analysis/PruneUnprofitable.cpp Fri Aug 25 14:35:27 2017
@@ -1,4 +1,4 @@
-//===- PruneUnprofitable.cpp ------------------------------------*- C++ -*-===//
+//===- PruneUnprofitable.cpp ----------------------------------------------===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -12,12 +12,19 @@
 //===----------------------------------------------------------------------===//
 
 #include "polly/PruneUnprofitable.h"
+#include "polly/ScopDetection.h"
 #include "polly/ScopInfo.h"
 #include "polly/ScopPass.h"
-#define DEBUG_TYPE "polly-prune-unprofitable"
+#include "llvm/ADT/Statistic.h"
+#include "llvm/IR/DebugLoc.h"
+#include "llvm/Pass.h"
+#include "llvm/Support/Debug.h"
+#include "llvm/Support/raw_ostream.h"
 
-using namespace polly;
 using namespace llvm;
+using namespace polly;
+
+#define DEBUG_TYPE "polly-prune-unprofitable"
 
 namespace {
 
@@ -37,9 +44,6 @@ STATISTIC(NumAffineLoops, "Number of aff
 
 class PruneUnprofitable : public ScopPass {
 private:
-  PruneUnprofitable(const PruneUnprofitable &) = delete;
-  const PruneUnprofitable &operator=(const PruneUnprofitable &) = delete;
-
   void updateStatistics(Scop &S, bool Pruned) {
     auto ScopStats = S.getStatistics();
     if (Pruned) {
@@ -57,14 +61,17 @@ private:
 
 public:
   static char ID;
+
   explicit PruneUnprofitable() : ScopPass(ID) {}
+  PruneUnprofitable(const PruneUnprofitable &) = delete;
+  PruneUnprofitable &operator=(const PruneUnprofitable &) = delete;
 
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const override {
+  void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.addRequired<ScopInfoRegionPass>();
     AU.setPreservesAll();
   }
 
-  virtual bool runOnScop(Scop &S) override {
+  bool runOnScop(Scop &S) override {
     if (PollyProcessUnprofitable) {
       DEBUG(dbgs() << "NOTE: -polly-process-unprofitable active, won't prune "
                       "anything\n");
@@ -86,8 +93,9 @@ public:
   }
 };
 
+} // namespace
+
 char PruneUnprofitable::ID;
-} // anonymous namespace
 
 Pass *polly::createPruneUnprofitablePass() { return new PruneUnprofitable(); }
 

Modified: polly/trunk/lib/Analysis/ScopDetection.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopDetection.cpp?rev=311802&r1=311801&r2=311802&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopDetection.cpp (original)
+++ polly/trunk/lib/Analysis/ScopDetection.cpp Fri Aug 25 14:35:27 2017
@@ -1,3 +1,4 @@
+//===- ScopDetection.cpp - Detect Scops -----------------------------------===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -44,28 +45,59 @@
 //===----------------------------------------------------------------------===//
 
 #include "polly/ScopDetection.h"
-#include "polly/CodeGen/CodeGeneration.h"
 #include "polly/LinkAllPasses.h"
 #include "polly/Options.h"
 #include "polly/ScopDetectionDiagnostic.h"
 #include "polly/Support/SCEVValidator.h"
+#include "polly/Support/ScopHelper.h"
 #include "polly/Support/ScopLocation.h"
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/ADT/SetVector.h"
+#include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/Statistic.h"
+#include "llvm/ADT/StringRef.h"
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/Analysis/Loads.h"
 #include "llvm/Analysis/LoopInfo.h"
-#include "llvm/Analysis/RegionIterator.h"
+#include "llvm/Analysis/MemoryLocation.h"
+#include "llvm/Analysis/OptimizationDiagnosticInfo.h"
+#include "llvm/Analysis/RegionInfo.h"
 #include "llvm/Analysis/ScalarEvolution.h"
 #include "llvm/Analysis/ScalarEvolutionExpressions.h"
-#include "llvm/IR/DebugInfo.h"
+#include "llvm/IR/BasicBlock.h"
+#include "llvm/IR/Constants.h"
+#include "llvm/IR/DebugLoc.h"
+#include "llvm/IR/DerivedTypes.h"
 #include "llvm/IR/DiagnosticInfo.h"
 #include "llvm/IR/DiagnosticPrinter.h"
+#include "llvm/IR/Dominators.h"
+#include "llvm/IR/Function.h"
+#include "llvm/IR/InstrTypes.h"
+#include "llvm/IR/Instruction.h"
+#include "llvm/IR/Instructions.h"
 #include "llvm/IR/IntrinsicInst.h"
+#include "llvm/IR/Intrinsics.h"
 #include "llvm/IR/LLVMContext.h"
+#include "llvm/IR/Metadata.h"
+#include "llvm/IR/Module.h"
+#include "llvm/IR/PassManager.h"
+#include "llvm/IR/Type.h"
+#include "llvm/IR/Value.h"
+#include "llvm/Pass.h"
+#include "llvm/Support/Casting.h"
+#include "llvm/Support/CommandLine.h"
 #include "llvm/Support/Debug.h"
+#include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/Regex.h"
-#include <set>
+#include "llvm/Support/raw_ostream.h"
+#include <algorithm>
+#include <cassert>
+#include <memory>
 #include <stack>
+#include <string>
+#include <utility>
+#include <vector>
 
 using namespace llvm;
 using namespace polly;
@@ -83,6 +115,7 @@ static cl::opt<int> ProfitabilityMinPerL
     cl::Hidden, cl::ValueRequired, cl::init(100000000), cl::cat(PollyCategory));
 
 bool polly::PollyProcessUnprofitable;
+
 static cl::opt<bool, true> XPollyProcessUnprofitable(
     "polly-process-unprofitable",
     cl::desc(
@@ -107,6 +140,7 @@ static cl::list<std::string> IgnoredFunc
     cl::ZeroOrMore, cl::CommaSeparated, cl::cat(PollyCategory));
 
 bool polly::PollyAllowFullFunction;
+
 static cl::opt<bool, true>
     XAllowFullFunction("polly-detect-full-functions",
                        cl::desc("Allow the detection of full functions"),
@@ -127,6 +161,7 @@ static cl::opt<bool>
                    cl::cat(PollyCategory));
 
 bool polly::PollyAllowUnsignedOperations;
+
 static cl::opt<bool, true> XPollyAllowUnsignedOperations(
     "polly-allow-unsigned-operations",
     cl::desc("Allow unsigned operations such as comparisons or zero-extends."),
@@ -134,6 +169,7 @@ static cl::opt<bool, true> XPollyAllowUn
     cl::init(true), cl::cat(PollyCategory));
 
 bool polly::PollyUseRuntimeAliasChecks;
+
 static cl::opt<bool, true> XPollyUseRuntimeAliasChecks(
     "polly-use-runtime-alias-checks",
     cl::desc("Use runtime alias checks to resolve possible aliasing."),
@@ -197,6 +233,7 @@ static cl::opt<bool>
                 cl::cat(PollyCategory));
 
 bool polly::PollyInvariantLoadHoisting;
+
 static cl::opt<bool, true> XPollyInvariantLoadHoisting(
     "polly-invariant-load-hoisting", cl::desc("Hoist invariant loads."),
     cl::location(PollyInvariantLoadHoisting), cl::Hidden, cl::ZeroOrMore,
@@ -245,6 +282,8 @@ STATISTIC(MaxNumLoopsInProfScop,
 static void updateLoopCountStatistic(ScopDetection::LoopStats Stats,
                                      bool OnlyProfitable);
 
+namespace {
+
 class DiagnosticScopFound : public DiagnosticInfo {
 private:
   static int PluginDiagnosticKind;
@@ -259,13 +298,15 @@ public:
       : DiagnosticInfo(PluginDiagnosticKind, DS_Note), F(F), FileName(FileName),
         EntryLine(EntryLine), ExitLine(ExitLine) {}
 
-  virtual void print(DiagnosticPrinter &DP) const;
+  void print(DiagnosticPrinter &DP) const override;
 
   static bool classof(const DiagnosticInfo *DI) {
     return DI->getKind() == PluginDiagnosticKind;
   }
 };
 
+} // namespace
+
 int DiagnosticScopFound::PluginDiagnosticKind =
     getNextAvailablePluginDiagnosticKind();
 
@@ -307,13 +348,12 @@ ScopDetection::ScopDetection(Function &F
                              ScalarEvolution &SE, LoopInfo &LI, RegionInfo &RI,
                              AliasAnalysis &AA, OptimizationRemarkEmitter &ORE)
     : DT(DT), SE(SE), LI(LI), RI(RI), AA(AA), ORE(ORE) {
-
   if (!PollyProcessUnprofitable && LI.empty())
     return;
 
   Region *TopRegion = RI.getTopLevelRegion();
 
-  if (OnlyFunctions.size() > 0 &&
+  if (!OnlyFunctions.empty() &&
       !doesStringMatchAnyRegex(F.getName(), OnlyFunctions))
     return;
 
@@ -361,7 +401,6 @@ ScopDetection::ScopDetection(Function &F
 template <class RR, typename... Args>
 inline bool ScopDetection::invalid(DetectionContext &Context, bool Assert,
                                    Args &&... Arguments) const {
-
   if (!Context.Verifying) {
     RejectLog &Log = Context.Log;
     std::shared_ptr<RR> RejectReason = std::make_shared<RR>(Arguments...);
@@ -410,7 +449,6 @@ std::string ScopDetection::regionIsInval
 
 bool ScopDetection::addOverApproximatedRegion(Region *AR,
                                               DetectionContext &Context) const {
-
   // If we already know about Ar we can exit.
   if (!Context.NonAffineSubRegionSet.insert(AR))
     return true;
@@ -448,7 +486,6 @@ bool ScopDetection::onlyValidRequiredInv
       return false;
 
     for (auto NonAffineRegion : Context.NonAffineSubRegionSet) {
-
       if (isSafeToLoadUnconditionally(Load->getPointerOperand(),
                                       Load->getAlignment(), DL))
         continue;
@@ -500,7 +537,6 @@ bool ScopDetection::involvesMultiplePtrs
 
 bool ScopDetection::isAffine(const SCEV *S, Loop *Scope,
                              DetectionContext &Context) const {
-
   InvariantLoadsSetTy AccessILS;
   if (!isAffineExpr(&Context.CurRegion, Scope, S, SE, &AccessILS))
     return false;
@@ -538,7 +574,6 @@ bool ScopDetection::isValidSwitch(BasicB
 bool ScopDetection::isValidBranch(BasicBlock &BB, BranchInst *BI,
                                   Value *Condition, bool IsLoopBranch,
                                   DetectionContext &Context) const {
-
   // Constant integer conditions are always affine.
   if (isa<ConstantInt>(Condition))
     return true;
@@ -708,8 +743,8 @@ bool ScopDetection::isValidIntrinsicInst
 
   switch (II.getIntrinsicID()) {
   // Memory intrinsics that can be represented are supported.
-  case llvm::Intrinsic::memmove:
-  case llvm::Intrinsic::memcpy:
+  case Intrinsic::memmove:
+  case Intrinsic::memcpy:
     AF = SE.getSCEVAtScope(cast<MemTransferInst>(II).getSource(), L);
     if (!AF->isZero()) {
       BP = dyn_cast<SCEVUnknown>(SE.getPointerBase(AF));
@@ -718,7 +753,7 @@ bool ScopDetection::isValidIntrinsicInst
         return false;
     }
   // Fall through
-  case llvm::Intrinsic::memset:
+  case Intrinsic::memset:
     AF = SE.getSCEVAtScope(cast<MemIntrinsic>(II).getDest(), L);
     if (!AF->isZero()) {
       BP = dyn_cast<SCEVUnknown>(SE.getPointerBase(AF));
@@ -764,6 +799,8 @@ bool ScopDetection::isInvariant(Value &V
   return false;
 }
 
+namespace {
+
 /// Remove smax of smax(0, size) expressions from a SCEV expression and
 /// register the '...' components.
 ///
@@ -778,15 +815,15 @@ bool ScopDetection::isInvariant(Value &V
 /// that 0 <= size, which means smax(0, size) == size.
 class SCEVRemoveMax : public SCEVRewriteVisitor<SCEVRemoveMax> {
 public:
+  SCEVRemoveMax(ScalarEvolution &SE, std::vector<const SCEV *> *Terms)
+      : SCEVRewriteVisitor(SE), Terms(Terms) {}
+
   static const SCEV *rewrite(const SCEV *Scev, ScalarEvolution &SE,
                              std::vector<const SCEV *> *Terms = nullptr) {
     SCEVRemoveMax Rewriter(SE, Terms);
     return Rewriter.visit(Scev);
   }
 
-  SCEVRemoveMax(ScalarEvolution &SE, std::vector<const SCEV *> *Terms)
-      : SCEVRewriteVisitor(SE), Terms(Terms) {}
-
   const SCEV *visitSMaxExpr(const SCEVSMaxExpr *Expr) {
     if ((Expr->getNumOperands() == 2) && Expr->getOperand(0)->isZero()) {
       auto Res = visit(Expr->getOperand(1));
@@ -802,6 +839,8 @@ private:
   std::vector<const SCEV *> *Terms;
 };
 
+} // namespace
+
 SmallVector<const SCEV *, 4>
 ScopDetection::getDelinearizationTerms(DetectionContext &Context,
                                        const SCEVUnknown *BasePointer) const {
@@ -809,7 +848,7 @@ ScopDetection::getDelinearizationTerms(D
   for (const auto &Pair : Context.Accesses[BasePointer]) {
     std::vector<const SCEV *> MaxTerms;
     SCEVRemoveMax::rewrite(Pair.second, SE, &MaxTerms);
-    if (MaxTerms.size() > 0) {
+    if (!MaxTerms.empty()) {
       Terms.insert(Terms.begin(), MaxTerms.begin(), MaxTerms.end());
       continue;
     }
@@ -1345,6 +1384,7 @@ Region *ScopDetection::expandRegion(Regi
 
   return LastValidRegion.release();
 }
+
 static bool regionWithoutLoops(Region &R, LoopInfo &LI) {
   for (const BasicBlock *BB : R.blocks())
     if (R.contains(LI.getLoopFor(BB)))
@@ -1586,11 +1626,11 @@ void ScopDetection::markFunctionAsInvali
   F->addFnAttr(PollySkipFnAttr);
 }
 
-bool ScopDetection::isValidFunction(llvm::Function &F) {
+bool ScopDetection::isValidFunction(Function &F) {
   return !F.hasFnAttribute(PollySkipFnAttr);
 }
 
-void ScopDetection::printLocations(llvm::Function &F) {
+void ScopDetection::printLocations(Function &F) {
   for (const Region *R : *this) {
     unsigned LineEntry, LineExit;
     std::string FileName;
@@ -1733,14 +1773,14 @@ const RejectLog *ScopDetection::lookupRe
   return DC ? &DC->Log : nullptr;
 }
 
-void polly::ScopDetection::verifyRegion(const Region &R) const {
+void ScopDetection::verifyRegion(const Region &R) const {
   assert(isMaxRegionInScop(R) && "Expect R is a valid region.");
 
   DetectionContext Context(const_cast<Region &>(R), AA, true /*verifying*/);
   isValidRegion(Context);
 }
 
-void polly::ScopDetection::verifyAnalysis() const {
+void ScopDetection::verifyAnalysis() const {
   if (!VerifyScops)
     return;
 
@@ -1748,7 +1788,7 @@ void polly::ScopDetection::verifyAnalysi
     verifyRegion(*R);
 }
 
-bool ScopDetectionWrapperPass::runOnFunction(llvm::Function &F) {
+bool ScopDetectionWrapperPass::runOnFunction(Function &F) {
   auto &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
   auto &RI = getAnalysis<RegionInfoPass>().getRegionInfo();
   auto &AA = getAnalysis<AAResultsWrapperPass>().getAAResults();
@@ -1782,6 +1822,7 @@ ScopDetectionWrapperPass::ScopDetectionW
   if (IgnoreAliasing)
     PollyUseRuntimeAliasChecks = false;
 }
+
 ScopAnalysis::ScopAnalysis() {
   // Disable runtime alias checks if we ignore aliasing all together.
   if (IgnoreAliasing)
@@ -1806,12 +1847,12 @@ ScopDetection ScopAnalysis::run(Function
 
 PreservedAnalyses ScopAnalysisPrinterPass::run(Function &F,
                                                FunctionAnalysisManager &FAM) {
-  Stream << "Detected Scops in Function " << F.getName() << "\n";
+  OS << "Detected Scops in Function " << F.getName() << "\n";
   auto &SD = FAM.getResult<ScopAnalysis>(F);
   for (const Region *R : SD.ValidRegions)
-    Stream << "Valid Region for Scop: " << R->getNameStr() << '\n';
+    OS << "Valid Region for Scop: " << R->getNameStr() << '\n';
 
-  Stream << "\n";
+  OS << "\n";
   return PreservedAnalyses::all();
 }
 

Modified: polly/trunk/lib/Analysis/ScopDetectionDiagnostic.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopDetectionDiagnostic.cpp?rev=311802&r1=311801&r2=311802&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopDetectionDiagnostic.cpp (original)
+++ polly/trunk/lib/Analysis/ScopDetectionDiagnostic.cpp Fri Aug 25 14:35:27 2017
@@ -1,4 +1,4 @@
-//=== ScopDetectionDiagnostic.cpp - Error diagnostics --------- -*- C++ -*-===//
+//===- ScopDetectionDiagnostic.cpp - Error diagnostics --------------------===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -17,32 +17,38 @@
 // to diagnose the error and generate a helpful error message.
 //
 //===----------------------------------------------------------------------===//
+
 #include "polly/ScopDetectionDiagnostic.h"
-#include "polly/Support/ScopLocation.h"
+#include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/Statistic.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/ADT/Twine.h"
 #include "llvm/Analysis/AliasSetTracker.h"
 #include "llvm/Analysis/LoopInfo.h"
 #include "llvm/Analysis/OptimizationDiagnosticInfo.h"
 #include "llvm/Analysis/RegionInfo.h"
+#include "llvm/Analysis/ScalarEvolution.h"
 #include "llvm/IR/BasicBlock.h"
-#include "llvm/IR/DebugInfo.h"
+#include "llvm/IR/CFG.h"
 #include "llvm/IR/DebugLoc.h"
 #include "llvm/IR/DiagnosticInfo.h"
-#include "llvm/IR/LLVMContext.h"
+#include "llvm/IR/Instruction.h"
 #include "llvm/IR/Value.h"
-
-#define DEBUG_TYPE "polly-detect"
-#include "llvm/Support/Debug.h"
-
+#include "llvm/Support/raw_ostream.h"
+#include <algorithm>
+#include <cassert>
 #include <string>
+#include <utility>
 
 using namespace llvm;
 
+#define DEBUG_TYPE "polly-detect"
+
 #define SCOP_STAT(NAME, DESC)                                                  \
   { "polly-detect", "NAME", "Number of rejected regions: " DESC, {0}, false }
 
-llvm::Statistic RejectStatistics[] = {
+Statistic RejectStatistics[] = {
     SCOP_STAT(CFG, ""),
     SCOP_STAT(InvalidTerminator, "Unsupported terminator instruction"),
     SCOP_STAT(UnreachableInExit, "Unreachable in exit block"),
@@ -76,6 +82,7 @@ llvm::Statistic RejectStatistics[] = {
 };
 
 namespace polly {
+
 /// Small string conversion via raw_string_stream.
 template <typename T> std::string operator+(Twine LHS, const T &RHS) {
   std::string Buf;
@@ -85,17 +92,21 @@ template <typename T> std::string operat
 
   return LHS.concat(Buf).str();
 }
+
 } // namespace polly
 
 namespace llvm {
+
 // Lexicographic order on (line, col) of our debug locations.
-static bool operator<(const llvm::DebugLoc &LHS, const llvm::DebugLoc &RHS) {
+static bool operator<(const DebugLoc &LHS, const DebugLoc &RHS) {
   return LHS.getLine() < RHS.getLine() ||
          (LHS.getLine() == RHS.getLine() && LHS.getCol() < RHS.getCol());
 }
+
 } // namespace llvm
 
 namespace polly {
+
 BBPair getBBPairForRegion(const Region *R) {
   return std::make_pair(R->getEntry(), R->getExit());
 }
@@ -163,7 +174,7 @@ RejectReason::RejectReason(RejectReasonK
 
 const DebugLoc RejectReason::Unknown = DebugLoc();
 
-const llvm::DebugLoc &RejectReason::getDebugLoc() const {
+const DebugLoc &RejectReason::getDebugLoc() const {
   // Allocate an empty DebugLoc and return it a reference to it.
   return Unknown;
 }
@@ -401,8 +412,8 @@ bool ReportDifferentArrayElementSize::cl
 }
 
 std::string ReportDifferentArrayElementSize::getEndUserMessage() const {
-  llvm::StringRef BaseName = BaseValue->getName();
-  std::string Name = (BaseName.size() > 0) ? BaseName : "UNKNOWN";
+  StringRef BaseName = BaseValue->getName();
+  std::string Name = BaseName.empty() ? "UNKNOWN" : BaseName;
   return "The array \"" + Name +
          "\" is accessed through elements that differ "
          "in size";
@@ -428,8 +439,8 @@ bool ReportNonAffineAccess::classof(cons
 }
 
 std::string ReportNonAffineAccess::getEndUserMessage() const {
-  llvm::StringRef BaseName = BaseValue->getName();
-  std::string Name = (BaseName.size() > 0) ? BaseName : "UNKNOWN";
+  StringRef BaseName = BaseValue->getName();
+  std::string Name = BaseName.empty() ? "UNKNOWN" : BaseName;
   return "The array subscript of \"" + Name + "\" is not affine";
 }
 
@@ -572,7 +583,6 @@ bool ReportNonSimpleMemoryAccess::classo
 
 ReportAlias::ReportAlias(Instruction *Inst, AliasSet &AS)
     : RejectReason(RejectReasonKind::Alias), Inst(Inst) {
-
   for (const auto &I : AS)
     Pointers.push_back(I.getValue());
 }
@@ -590,7 +600,7 @@ std::string ReportAlias::formatInvalidAl
     const Value *V = *PI;
     assert(V && "Diagnostic info does not match found LLVM-IR anymore.");
 
-    if (V->getName().size() == 0)
+    if (V->getName().empty())
       OS << "\" <unknown> \"";
     else
       OS << "\"" << V->getName() << "\"";
@@ -712,6 +722,7 @@ bool ReportUnknownInst::classof(const Re
 
 //===----------------------------------------------------------------------===//
 // ReportEntry.
+
 ReportEntry::ReportEntry(BasicBlock *BB)
     : ReportOther(RejectReasonKind::Entry), BB(BB) {}
 
@@ -737,6 +748,7 @@ bool ReportEntry::classof(const RejectRe
 
 //===----------------------------------------------------------------------===//
 // ReportUnprofitable.
+
 ReportUnprofitable::ReportUnprofitable(Region *R)
     : ReportOther(RejectReasonKind::Unprofitable), R(R) {}
 
@@ -764,4 +776,5 @@ const DebugLoc &ReportUnprofitable::getD
 bool ReportUnprofitable::classof(const RejectReason *RR) {
   return RR->getKind() == RejectReasonKind::Unprofitable;
 }
+
 } // namespace polly

Modified: polly/trunk/lib/Transform/MaximalStaticExpansion.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/MaximalStaticExpansion.cpp?rev=311802&r1=311801&r2=311802&view=diff
==============================================================================
--- polly/trunk/lib/Transform/MaximalStaticExpansion.cpp (original)
+++ polly/trunk/lib/Transform/MaximalStaticExpansion.cpp Fri Aug 25 14:35:27 2017
@@ -1,4 +1,4 @@
-//===----------------  MaximalStaticExpansion.cpp -------------------------===//
+//===- MaximalStaticExpansion.cpp -----------------------------------------===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -13,14 +13,20 @@
 //===----------------------------------------------------------------------===//
 
 #include "polly/DependenceInfo.h"
-#include "polly/FlattenAlgo.h"
 #include "polly/LinkAllPasses.h"
-#include "polly/Options.h"
 #include "polly/ScopInfo.h"
+#include "polly/ScopPass.h"
 #include "polly/Support/GICHelper.h"
-#include "polly/Support/ISLOStream.h"
-#include "llvm/Analysis/TargetTransformInfo.h"
-#include "llvm/Support/Debug.h"
+#include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Analysis/OptimizationDiagnosticInfo.h"
+#include "llvm/Pass.h"
+#include "isl/isl-noexceptions.h"
+#include "isl/union_map.h"
+#include <cassert>
+#include <limits>
+#include <string>
+#include <vector>
 
 using namespace llvm;
 using namespace polly;
@@ -28,12 +34,14 @@ using namespace polly;
 #define DEBUG_TYPE "polly-mse"
 
 namespace {
+
 class MaximalStaticExpander : public ScopPass {
 public:
   static char ID;
+
   explicit MaximalStaticExpander() : ScopPass(ID) {}
 
-  ~MaximalStaticExpander() {}
+  ~MaximalStaticExpander() override = default;
 
   /// Expand the accesses of the SCoP.
   ///
@@ -104,15 +112,14 @@ private:
   void expandPhi(Scop &S, const ScopArrayInfo *SAI,
                  const isl::union_map &Dependences);
 };
-} // namespace
 
-namespace {
+} // namespace
 
 #ifndef NDEBUG
 /// Whether a dimension of a set is bounded (lower and upper) by a constant,
 /// i.e. there are two constants Min and Max, such that every value x of the
 /// chosen dimensions is Min <= x <= Max.
-bool isDimBoundedByConstant(isl::set Set, unsigned dim) {
+static bool isDimBoundedByConstant(isl::set Set, unsigned dim) {
   auto ParamDims = Set.dim(isl::dim::param);
   Set = Set.project_out(isl::dim::param, 0, ParamDims);
   Set = Set.project_out(isl::dim::set, 0, dim);
@@ -125,7 +132,7 @@ bool isDimBoundedByConstant(isl::set Set
 /// If @p PwAff maps to a constant, return said constant. If @p Max/@p Min, it
 /// can also be a piecewise constant and it would return the minimum/maximum
 /// value. Otherwise, return NaN.
-isl::val getConstant(isl::pw_aff PwAff, bool Max, bool Min) {
+static isl::val getConstant(isl::pw_aff PwAff, bool Max, bool Min) {
   assert(!Max || !Min);
   isl::val Result;
   PwAff.foreach_piece([=, &Result](isl::set Set, isl::aff Aff) -> isl::stat {
@@ -165,13 +172,10 @@ isl::val getConstant(isl::pw_aff PwAff,
   return Result;
 }
 
-} // namespace
-
 char MaximalStaticExpander::ID = 0;
 
 isl::union_map MaximalStaticExpander::filterDependences(
     Scop &S, const isl::union_map &Dependences, MemoryAccess *MA) {
-
   auto SAI = MA->getLatestScopArrayInfo();
 
   auto AccessDomainSet = MA->getAccessRelation().domain();
@@ -216,7 +220,6 @@ bool MaximalStaticExpander::isExpandable
     const ScopArrayInfo *SAI, SmallPtrSetImpl<MemoryAccess *> &Writes,
     SmallPtrSetImpl<MemoryAccess *> &Reads, Scop &S,
     const isl::union_map &Dependences) {
-
   if (SAI->isValueKind()) {
     Writes.insert(S.getValueDef(SAI));
     for (auto MA : S.getValueUses(SAI))
@@ -262,7 +265,6 @@ bool MaximalStaticExpander::isExpandable
     auto StmtWrites = isl::union_map::empty(S.getParamSpace());
 
     for (MemoryAccess *MA : Stmt) {
-
       // Check if the current MemoryAccess involved the current SAI.
       if (SAI != MA->getLatestScopArrayInfo())
         continue;
@@ -308,7 +310,6 @@ bool MaximalStaticExpander::isExpandable
 
       // Check if it is possible to expand this read.
       if (MA->isRead()) {
-
         // Get the domain of the current ScopStmt.
         auto StmtDomain = Stmt.getDomain();
 
@@ -368,9 +369,7 @@ void MaximalStaticExpander::mapAccess(Sc
                                       const isl::union_map &Dependences,
                                       ScopArrayInfo *ExpandedSAI,
                                       bool Reverse) {
-
   for (auto MA : Accesses) {
-
     // Get the current AM.
     auto CurrentAccessMap = MA->getAccessRelation();
 
@@ -405,7 +404,6 @@ void MaximalStaticExpander::mapAccess(Sc
 }
 
 ScopArrayInfo *MaximalStaticExpander::expandAccess(Scop &S, MemoryAccess *MA) {
-
   // Get the current AM.
   auto CurrentAccessMap = MA->getAccessRelation();
 




More information about the llvm-commits mailing list