source: icGREP/icgrep-devel/icgrep/kernels/p2s_kernel.h @ 5513

Last change on this file since 5513 was 5464, checked in by nmedfort, 2 years ago

Restructuring work for the Driver classes. Start of work to eliminate the memory leaks with the ExecutionEngine?. Replaced custom AlignedMalloc? with backend call to std::aligned_malloc. Salvaged some work on DistributionPass? for reevaluation.

File size: 1.8 KB
RevLine 
[4987]1/*
2 *  Copyright (c) 2016 International Characters.
3 *  This software is licensed to the public under the Open Software License 3.0.
4 */
5#ifndef P2S_KERNEL_H
6#define P2S_KERNEL_H
7
[5267]8#include "kernel.h"  // for KernelBuilder
[4987]9namespace IDISA { class IDISA_Builder; }
10
11namespace kernel {
12
[5071]13   
[5431]14class P2SKernel final : public BlockOrientedKernel {
[5071]15public:
[5436]16    P2SKernel(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
[5431]17    bool isCachable() const override { return true; }
[5464]18    bool hasSignature() const override { return false; }
[5074]19private:
[5440]20    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & iBuilder) override;
[5071]21};
[5009]22
[5431]23class P2SKernelWithCompressedOutput final : public BlockOrientedKernel {
[5079]24public:
[5436]25    P2SKernelWithCompressedOutput(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
[5431]26    bool isCachable() const override { return true; }
[5464]27    bool hasSignature() const override { return false; }
[5079]28private:
[5440]29    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & iBuilder) override;
[5079]30};
31
[5431]32class P2S16Kernel final : public BlockOrientedKernel {
[5071]33public:
[5436]34    P2S16Kernel(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
[5431]35    bool isCachable() const override { return true; }
[5464]36    bool hasSignature() const override { return false; }
[5074]37private:
[5440]38    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & iBuilder) override;
[5071]39};
40   
[5431]41class P2S16KernelWithCompressedOutput final : public BlockOrientedKernel {
[5071]42public:
[5436]43    P2S16KernelWithCompressedOutput(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
[5431]44    bool isCachable() const override { return true; }
[5464]45    bool hasSignature() const override { return false; }
[5074]46private:
[5440]47    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & iBuilder) override;
[5071]48};
49   
[4987]50}
51
52#endif
Note: See TracBrowser for help on using the repository browser.