diff options
| author | orivej <[email protected]> | 2022-02-10 16:44:49 +0300 | 
|---|---|---|
| committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:44:49 +0300 | 
| commit | 718c552901d703c502ccbefdfc3c9028d608b947 (patch) | |
| tree | 46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/libs/llvm12/include/llvm/CodeGen/MachinePostDominators.h | |
| parent | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff) | |
Restoring authorship annotation for <[email protected]>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/llvm12/include/llvm/CodeGen/MachinePostDominators.h')
| -rw-r--r-- | contrib/libs/llvm12/include/llvm/CodeGen/MachinePostDominators.h | 212 | 
1 files changed, 106 insertions, 106 deletions
diff --git a/contrib/libs/llvm12/include/llvm/CodeGen/MachinePostDominators.h b/contrib/libs/llvm12/include/llvm/CodeGen/MachinePostDominators.h index 468a7337943..432bdc6620d 100644 --- a/contrib/libs/llvm12/include/llvm/CodeGen/MachinePostDominators.h +++ b/contrib/libs/llvm12/include/llvm/CodeGen/MachinePostDominators.h @@ -1,106 +1,106 @@ -#pragma once - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#endif - -//===- llvm/CodeGen/MachinePostDominators.h ----------------------*- C++ -*-==// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file exposes interfaces to post dominance information for -// target-specific code. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_CODEGEN_MACHINEPOSTDOMINATORS_H -#define LLVM_CODEGEN_MACHINEPOSTDOMINATORS_H - -#include "llvm/CodeGen/MachineDominators.h" -#include "llvm/CodeGen/MachineFunctionPass.h" -#include <memory> - -namespace llvm { - -/// -/// MachinePostDominatorTree - an analysis pass wrapper for DominatorTree -/// used to compute the post-dominator tree for MachineFunctions. -/// -class MachinePostDominatorTree : public MachineFunctionPass { -  using PostDomTreeT = PostDomTreeBase<MachineBasicBlock>; -  std::unique_ptr<PostDomTreeT> PDT; - -public: -  static char ID; - -  MachinePostDominatorTree(); - -  PostDomTreeT &getBase() { -    if (!PDT) -      PDT.reset(new PostDomTreeT()); -    return *PDT; -  } - -  FunctionPass *createMachinePostDominatorTreePass(); - -  MachineDomTreeNode *getRootNode() const { return PDT->getRootNode(); } - -  MachineDomTreeNode *operator[](MachineBasicBlock *BB) const { -    return PDT->getNode(BB); -  } - -  MachineDomTreeNode *getNode(MachineBasicBlock *BB) const { -    return PDT->getNode(BB); -  } - -  bool dominates(const MachineDomTreeNode *A, -                 const MachineDomTreeNode *B) const { -    return PDT->dominates(A, B); -  } - -  bool dominates(const MachineBasicBlock *A, const MachineBasicBlock *B) const { -    return PDT->dominates(A, B); -  } - -  bool properlyDominates(const MachineDomTreeNode *A, -                         const MachineDomTreeNode *B) const { -    return PDT->properlyDominates(A, B); -  } - -  bool properlyDominates(const MachineBasicBlock *A, -                         const MachineBasicBlock *B) const { -    return PDT->properlyDominates(A, B); -  } - -  bool isVirtualRoot(const MachineDomTreeNode *Node) const { -    return PDT->isVirtualRoot(Node); -  } - -  MachineBasicBlock *findNearestCommonDominator(MachineBasicBlock *A, -                                                MachineBasicBlock *B) const { -    return PDT->findNearestCommonDominator(A, B); -  } - -  /// Returns the nearest common dominator of the given blocks. -  /// If that tree node is a virtual root, a nullptr will be returned. -  MachineBasicBlock * -  findNearestCommonDominator(ArrayRef<MachineBasicBlock *> Blocks) const; - -  bool runOnMachineFunction(MachineFunction &MF) override; -  void getAnalysisUsage(AnalysisUsage &AU) const override; -  void releaseMemory() override { PDT.reset(nullptr); } -  void verifyAnalysis() const override; -  void print(llvm::raw_ostream &OS, const Module *M = nullptr) const override; -}; -} //end of namespace llvm - -#endif - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif +#pragma once  +  +#ifdef __GNUC__  +#pragma GCC diagnostic push  +#pragma GCC diagnostic ignored "-Wunused-parameter"  +#endif  +  +//===- llvm/CodeGen/MachinePostDominators.h ----------------------*- C++ -*-==//  +//  +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.  +// See https://llvm.org/LICENSE.txt for license information.  +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception  +//  +//===----------------------------------------------------------------------===//  +//  +// This file exposes interfaces to post dominance information for  +// target-specific code.  +//  +//===----------------------------------------------------------------------===//  +  +#ifndef LLVM_CODEGEN_MACHINEPOSTDOMINATORS_H  +#define LLVM_CODEGEN_MACHINEPOSTDOMINATORS_H  +  +#include "llvm/CodeGen/MachineDominators.h"  +#include "llvm/CodeGen/MachineFunctionPass.h"  +#include <memory>  +  +namespace llvm {  +  +///  +/// MachinePostDominatorTree - an analysis pass wrapper for DominatorTree  +/// used to compute the post-dominator tree for MachineFunctions.  +///  +class MachinePostDominatorTree : public MachineFunctionPass {  +  using PostDomTreeT = PostDomTreeBase<MachineBasicBlock>;  +  std::unique_ptr<PostDomTreeT> PDT;  +  +public:  +  static char ID;  +  +  MachinePostDominatorTree();  +  +  PostDomTreeT &getBase() {  +    if (!PDT)  +      PDT.reset(new PostDomTreeT());  +    return *PDT;  +  }  +  +  FunctionPass *createMachinePostDominatorTreePass();  +  +  MachineDomTreeNode *getRootNode() const { return PDT->getRootNode(); }  +  +  MachineDomTreeNode *operator[](MachineBasicBlock *BB) const {  +    return PDT->getNode(BB);  +  }  +  +  MachineDomTreeNode *getNode(MachineBasicBlock *BB) const {  +    return PDT->getNode(BB);  +  }  +  +  bool dominates(const MachineDomTreeNode *A,  +                 const MachineDomTreeNode *B) const {  +    return PDT->dominates(A, B);  +  }  +  +  bool dominates(const MachineBasicBlock *A, const MachineBasicBlock *B) const {  +    return PDT->dominates(A, B);  +  }  +  +  bool properlyDominates(const MachineDomTreeNode *A,  +                         const MachineDomTreeNode *B) const {  +    return PDT->properlyDominates(A, B);  +  }  +  +  bool properlyDominates(const MachineBasicBlock *A,  +                         const MachineBasicBlock *B) const {  +    return PDT->properlyDominates(A, B);  +  }  +  +  bool isVirtualRoot(const MachineDomTreeNode *Node) const {  +    return PDT->isVirtualRoot(Node);  +  }  +  +  MachineBasicBlock *findNearestCommonDominator(MachineBasicBlock *A,  +                                                MachineBasicBlock *B) const {  +    return PDT->findNearestCommonDominator(A, B);  +  }  +  +  /// Returns the nearest common dominator of the given blocks.  +  /// If that tree node is a virtual root, a nullptr will be returned.  +  MachineBasicBlock *  +  findNearestCommonDominator(ArrayRef<MachineBasicBlock *> Blocks) const;  +  +  bool runOnMachineFunction(MachineFunction &MF) override;  +  void getAnalysisUsage(AnalysisUsage &AU) const override;  +  void releaseMemory() override { PDT.reset(nullptr); }  +  void verifyAnalysis() const override;  +  void print(llvm::raw_ostream &OS, const Module *M = nullptr) const override;  +};  +} //end of namespace llvm  +  +#endif  +  +#ifdef __GNUC__  +#pragma GCC diagnostic pop  +#endif   | 
