Vectorize.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. //===-- Vectorize.cpp -----------------------------------------------------===//
  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. //
  10. // This file implements common infrastructure for libLLVMVectorizeOpts.a, which
  11. // implements several vectorization transformations over the LLVM intermediate
  12. // representation, including the C bindings for that library.
  13. //
  14. //===----------------------------------------------------------------------===//
  15. #if HLSL_VECTORIZATION_ENABLED // HLSL Change - don't build vectorization passes
  16. #include "llvm/Transforms/Vectorize.h"
  17. #include "llvm-c/Initialization.h"
  18. #include "llvm-c/Transforms/Vectorize.h"
  19. #include "llvm/Analysis/Passes.h"
  20. #include "llvm/IR/Verifier.h"
  21. #include "llvm/InitializePasses.h"
  22. #include "llvm/IR/LegacyPassManager.h"
  23. using namespace llvm;
  24. /// initializeVectorizationPasses - Initialize all passes linked into the
  25. /// Vectorization library.
  26. void llvm::initializeVectorization(PassRegistry &Registry) {
  27. initializeBBVectorizePass(Registry);
  28. initializeLoopVectorizePass(Registry);
  29. initializeSLPVectorizerPass(Registry);
  30. }
  31. void LLVMInitializeVectorization(LLVMPassRegistryRef R) {
  32. initializeVectorization(*unwrap(R));
  33. }
  34. void LLVMAddBBVectorizePass(LLVMPassManagerRef PM) {
  35. unwrap(PM)->add(createBBVectorizePass());
  36. }
  37. void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM) {
  38. unwrap(PM)->add(createLoopVectorizePass());
  39. }
  40. void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM) {
  41. unwrap(PM)->add(createSLPVectorizerPass());
  42. }
  43. #else
  44. namespace llvm {
  45. class PassRegistry;
  46. void initializeVectorization(PassRegistry &) {}
  47. }
  48. #endif // HLSL Change - don't build vectorization passes