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

Last change on this file since 5440 was 5440, checked in by nmedfort, 23 months ago

Large refactoring step. Removed IR generation code from Kernel (formally KernelBuilder?) and moved it into the new KernelBuilder? class.

File size: 1.3 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 PrintStreamSet final : public BlockOrientedKernel {
31public:
32    PrintStreamSet(const std::unique_ptr<kernel::KernelBuilder> & builder, std::vector<std::string> && names, const unsigned minWidth = 16);
33private:
34    void generateDoBlockMethod(const std::unique_ptr<kernel::KernelBuilder> & iBuilder) override;
35private:
36    const std::vector<std::string> mNames;
37    unsigned mNameWidth;
38};
39
40}
41#endif
Note: See TracBrowser for help on using the repository browser.