source: icGREP/icgrep-devel/icgrep/kernels/alignedprint.h @ 5638

Last change on this file since 5638 was 5626, checked in by xuedongx, 2 years ago

small fix for expandstreams

File size: 1.7 KB
Line 
1/*
2 *  Copyright (c) 2017 International Characters.
3 *  This software is licensed to the public under the Open Software License 3.0.
4 */
5#ifndef ALIGNED_PRINT_H
6#define ALIGNED_PRINT_H
7
8#include "kernel.h"  // for KernelBuilder
9namespace IDISA { class IDISA_Builder; }  // lines 14-14
10namespace llvm { class Value; }
11
12namespace kernel {
13
14class PrintableBits final : public BlockOrientedKernel {
15public:
16    PrintableBits(const std::unique_ptr<kernel::KernelBuilder> & builder);
17private:
18    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & iBuilder) override;
19};
20
21class SelectStream final : public BlockOrientedKernel {
22public:
23    SelectStream(const std::unique_ptr<kernel::KernelBuilder> & builder, unsigned sizeInputStreamSet, unsigned streamIndex);
24private:
25    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & iBuilder) override;
26    unsigned mSizeInputStreamSet;
27    unsigned mStreamIndex;
28};
29
30class ExpandOrSelectStreams final : public BlockOrientedKernel {
31public:
32    ExpandOrSelectStreams(const std::unique_ptr<kernel::KernelBuilder> & builder, unsigned sizeInputStreamSet, unsigned sizeOutputStreamSet);
33private:
34    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & iBuilder) override;
35    unsigned mSizeInputStreamSet;
36    unsigned mSizeOutputStreamSet;
37};
38
39class PrintStreamSet final : public BlockOrientedKernel {
40public:
41    PrintStreamSet(const std::unique_ptr<kernel::KernelBuilder> & builder, std::vector<std::string> && names, const unsigned minWidth = 16);
42private:
43    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & iBuilder) override;
44private:
45    const std::vector<std::string> mNames;
46    unsigned mNameWidth;
47};
48
49}
50#endif
Note: See TracBrowser for help on using the repository browser.