DxilRemoveUnstructuredLoopExits.h 729 B

123456789101112131415161718192021222324
  1. //===- DxilRemoveUnstructuredLoopExits.h - Make unrolled loops structured ---===//
  2. //
  3. // The LLVM Compiler Infrastructure
  4. //
  5. // This file is distributed under the University of Illinois Open Source
  6. // License. See LICENSE.TXT for details.
  7. //
  8. //===----------------------------------------------------------------------===//
  9. #include <unordered_set>
  10. namespace llvm {
  11. class Loop;
  12. class LoopInfo;
  13. class DominatorTree;
  14. class BasicBlock;
  15. }
  16. namespace hlsl {
  17. // exclude_set is a list of *EXIT BLOCKS* to exclude (NOTE: not *exiting* blocks)
  18. bool RemoveUnstructuredLoopExits(llvm::Loop *L, llvm::LoopInfo *LI, llvm::DominatorTree *DT, std::unordered_set<llvm::BasicBlock *> *exclude_set = nullptr);
  19. }