Commit 96693fd5 authored by Nguyen, Thien Minh's avatar Nguyen, Thien Minh
Browse files

Adding print_native_code to qpu_lambda and KernelSignature



Signed-off-by: default avatarThien Nguyen <nguyentm@ornl.gov>
parent ebe9366b
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -752,6 +752,27 @@ class _qpu_lambda {
    print_kernel(std::cout, args...);
  }

  template <typename... FunctionArgs>
  void print_native_code(std::ostream &os, FunctionArgs... args) {
    KernelSignature<FunctionArgs...> callable(*this);
    return internal::print_native_code<FunctionArgs...>(callable, os, args...);
  }
  template <typename... FunctionArgs>
  void print_native_code(FunctionArgs... args) {
    return print_native_code(std::cout, args...);
  }
  template <typename... FunctionArgs>
  void print_native_code(std::ostream &os, HeterogeneousMap options,
                         FunctionArgs... args) {
    KernelSignature<FunctionArgs...> callable(*this);
    return internal::print_native_code<FunctionArgs...>(callable, os, options,
                                                        args...);
  }
  template <typename... FunctionArgs>
  void print_native_code(HeterogeneousMap options, FunctionArgs... args) {
    return print_native_code(std::cout, options, args...);
  }

  template <typename... FunctionArgs>
  std::size_t n_instructions(FunctionArgs... args) {
    KernelSignature<FunctionArgs...> callable(*this);
@@ -879,6 +900,20 @@ class KernelSignature {

  void print_kernel(Args... args) { print_kernel(std::cout, args...); }

  void print_native_code(std::ostream &os, Args... args) {
    return internal::print_native_code<Args...>(*this, os, args...);
  }
  void print_native_code(Args... args) {
    return print_native_code(std::cout, args...);
  }
  void print_native_code(std::ostream &os, HeterogeneousMap options,
                         Args... args) {
    return internal::print_native_code<Args...>(*this, os, options, args...);
  }
  void print_native_code(HeterogeneousMap options, Args... args) {
    return print_native_code(std::cout, options, args...);
  }

  std::size_t n_instructions(Args... args) {
    return internal::n_instructions<Args...>(*this, args...);
  }