Skip to content

Commit

Permalink
Use a single common image type everywhere
Browse files Browse the repository at this point in the history
  • Loading branch information
abadams committed Aug 26, 2016
1 parent 83cffae commit d3a6b2b
Show file tree
Hide file tree
Showing 91 changed files with 1,180 additions and 1,598 deletions.
11 changes: 5 additions & 6 deletions Makefile
Expand Up @@ -321,7 +321,6 @@ SOURCE_FILES = \
Generator.cpp \
HexagonOffload.cpp \
HexagonOptimize.cpp \
Image.cpp \
ImageParam.cpp \
Interval.cpp \
InjectHostDevBufferCopies.cpp \
Expand Down Expand Up @@ -458,7 +457,7 @@ HEADER_FILES = \
HexagonOffload.h \
HexagonOptimize.h \
runtime/HalideRuntime.h \
Image.h \
runtime/HalideImage.h \
ImageParam.h \
Interval.h \
InjectHostDevBufferCopies.h \
Expand Down Expand Up @@ -1068,7 +1067,7 @@ performance_%: $(BIN_DIR)/performance_%

error_%: $(BIN_DIR)/error_%
@-mkdir -p $(TMP_DIR)
cd $(TMP_DIR) ; $(CURDIR)/$< 2>&1 | egrep --q "terminating with uncaught exception|^terminate called|^Error"
cd $(TMP_DIR) ; $(CURDIR)/$< 2>&1 | egrep --q "terminating with uncaught exception|^terminate called|^Error|Assertion.*failed"
@-echo

warning_%: $(BIN_DIR)/warning_%
Expand Down Expand Up @@ -1251,6 +1250,7 @@ install: $(LIB_DIR)/libHalide.a $(BIN_DIR)/libHalide.$(SHARED_EXT) $(INCLUDE_DIR
mkdir -p $(PREFIX)/include $(PREFIX)/bin $(PREFIX)/lib $(PREFIX)/share/halide/tutorial/images $(PREFIX)/share/halide/tools $(PREFIX)/share/halide/tutorial/figures
cp $(LIB_DIR)/libHalide.a $(BIN_DIR)/libHalide.$(SHARED_EXT) $(PREFIX)/lib
cp $(INCLUDE_DIR)/Halide.h $(PREFIX)/include
cp $(INCLUDE_DIR)/HalideImage.h $(PREFIX)/include
cp $(INCLUDE_DIR)/HalideRuntim*.h $(PREFIX)/include
cp $(ROOT_DIR)/tutorial/images/*.png $(PREFIX)/share/halide/tutorial/images
cp $(ROOT_DIR)/tutorial/figures/*.gif $(PREFIX)/share/halide/tutorial/figures
Expand All @@ -1261,7 +1261,6 @@ install: $(LIB_DIR)/libHalide.a $(BIN_DIR)/libHalide.$(SHARED_EXT) $(INCLUDE_DIR
cp $(ROOT_DIR)/tutorial/*.sh $(PREFIX)/share/halide/tutorial
cp $(ROOT_DIR)/tools/mex_halide.m $(PREFIX)/share/halide/tools
cp $(ROOT_DIR)/tools/GenGen.cpp $(PREFIX)/share/halide/tools
cp $(ROOT_DIR)/tools/halide_image.h $(PREFIX)/share/halide/tools
cp $(ROOT_DIR)/tools/halide_image_io.h $(PREFIX)/share/halide/tools
cp $(ROOT_DIR)/tools/halide_image_info.h $(PREFIX)/share/halide/tools

Expand All @@ -1270,6 +1269,7 @@ $(DISTRIB_DIR)/halide.tgz: $(LIB_DIR)/libHalide.a $(BIN_DIR)/libHalide.$(SHARED_
cp $(BIN_DIR)/libHalide.$(SHARED_EXT) $(DISTRIB_DIR)/bin
cp $(LIB_DIR)/libHalide.a $(DISTRIB_DIR)/lib
cp $(INCLUDE_DIR)/Halide.h $(DISTRIB_DIR)/include
cp $(INCLUDE_DIR)/HalideImage.h $(DISTRIB_DIR)/include
cp $(INCLUDE_DIR)/HalideRuntim*.h $(DISTRIB_DIR)/include
cp $(ROOT_DIR)/tutorial/images/*.png $(DISTRIB_DIR)/tutorial/images
cp $(ROOT_DIR)/tutorial/figures/*.gif $(DISTRIB_DIR)/tutorial/figures
Expand All @@ -1280,12 +1280,11 @@ $(DISTRIB_DIR)/halide.tgz: $(LIB_DIR)/libHalide.a $(BIN_DIR)/libHalide.$(SHARED_
cp $(ROOT_DIR)/tutorial/*.sh $(DISTRIB_DIR)/tutorial
cp $(ROOT_DIR)/tools/mex_halide.m $(DISTRIB_DIR)/tools
cp $(ROOT_DIR)/tools/GenGen.cpp $(DISTRIB_DIR)/tools
cp $(ROOT_DIR)/tools/halide_image.h $(DISTRIB_DIR)/tools
cp $(ROOT_DIR)/tools/halide_image_io.h $(DISTRIB_DIR)/tools
cp $(ROOT_DIR)/tools/halide_image_info.h $(DISTRIB_DIR)/tools
cp $(ROOT_DIR)/README.md $(DISTRIB_DIR)
ln -sf $(DISTRIB_DIR) halide
tar -czf $(DISTRIB_DIR)/halide.tgz halide/bin halide/lib halide/include halide/tutorial halide/README.md halide/tools/mex_halide.m halide/tools/GenGen.cpp halide/tools/halide_image.h halide/tools/halide_image_io.h halide/tools/halide_image_info.h
tar -czf $(DISTRIB_DIR)/halide.tgz halide/bin halide/lib halide/include halide/tutorial halide/README.md halide/tools/mex_halide.m halide/tools/GenGen.cpp halide/tools/halide_image_io.h halide/tools/halide_image_info.h
rm -rf halide

.PHONY: distrib
Expand Down
4 changes: 2 additions & 2 deletions apps/bilateral_grid/filter.cpp
Expand Up @@ -5,10 +5,10 @@
#include "bilateral_grid.h"

#include "benchmark.h"
#include "halide_image.h"
#include "HalideImage.h"
#include "halide_image_io.h"

using namespace Halide::Tools;
using namespace Halide;

int main(int argc, char **argv) {

Expand Down
4 changes: 2 additions & 2 deletions apps/blur/test.cpp
Expand Up @@ -4,9 +4,9 @@
#include <cstdio>

#include "benchmark.h"
#include "halide_image.h"
#include "HalideImage.h"

using namespace Halide::Tools;
using namespace Halide;

//#define cimg_display 0
//#include "CImg.h"
Expand Down
4 changes: 2 additions & 2 deletions apps/c_backend/run.cpp
Expand Up @@ -2,11 +2,11 @@
#include <cstdio>
#include <cstdlib>

#include "halide_image.h"
#include "HalideImage.h"
#include "pipeline_c.h"
#include "pipeline_native.h"

using namespace Halide::Tools;
using namespace Halide;

extern "C" int an_extern_func(int x, int y) {
return x + y;
Expand Down
4 changes: 2 additions & 2 deletions apps/c_backend/run_cpp.cpp
Expand Up @@ -2,11 +2,11 @@
#include <cstdio>
#include <cstdlib>

#include "halide_image.h"
#include "HalideImage.h"
#include "pipeline_cpp_native.h"
#include "pipeline_cpp_cpp.h"

using namespace Halide::Tools;
using namespace Halide;

extern "C" int an_extern_c_func(int a1, float a2) {
return (int)(a1 + a2);
Expand Down
2 changes: 1 addition & 1 deletion apps/camera_pipe/fcam/Demosaic.h
Expand Up @@ -3,7 +3,7 @@

/** \file
* Converting RAW data to RGB24 by demosiacking and gamma correcting. */
#include "halide_image.h"
#include "HalideImage.h"

namespace FCam {

Expand Down
2 changes: 1 addition & 1 deletion apps/camera_pipe/fcam/Demosaic_ARM.h
Expand Up @@ -2,7 +2,7 @@
#define FCAM_DEMOSAIC_ARM_H
//#ifdef FCAM_ARCH_ARM

#include "halide_image.h"
#include "HalideImage.h"

// Arm-specific optimized post-processing routines

Expand Down
4 changes: 2 additions & 2 deletions apps/camera_pipe/process.cpp
Expand Up @@ -3,7 +3,7 @@

#include "benchmark.h"
#include "curved.h"
#include "halide_image.h"
#include "HalideImage.h"
#include "halide_image_io.h"
#include "halide_malloc_trace.h"

Expand All @@ -12,7 +12,7 @@
#include <cstdlib>
#include <cassert>

using namespace Halide::Tools;
using namespace Halide;

int main(int argc, char **argv) {
if (argc < 7) {
Expand Down
2 changes: 1 addition & 1 deletion apps/interpolate/interpolate.cpp
Expand Up @@ -8,7 +8,7 @@ using namespace Halide;
#include "benchmark.h"
#include "halide_image_io.h"

using namespace Halide::Tools;
using namespace Halide;

using std::vector;

Expand Down
4 changes: 2 additions & 2 deletions apps/local_laplacian/process.cpp
Expand Up @@ -4,10 +4,10 @@
#include "local_laplacian.h"

#include "benchmark.h"
#include "halide_image.h"
#include "HalideImage.h"
#include "halide_image_io.h"

using namespace Halide::Tools;
using namespace Halide;

int main(int argc, char **argv) {
if (argc < 7) {
Expand Down
4 changes: 2 additions & 2 deletions apps/modules/run_pipeline.cpp
@@ -1,9 +1,9 @@
#include "pipeline.h"

#include "halide_image.h"
#include "HalideImage.h"
#include "halide_image_io.h"

using namespace Halide::Tools;
using namespace Halide;

int main(int argc, char **argv) {

Expand Down
2 changes: 1 addition & 1 deletion apps/templates/tests/example_test.cpp
Expand Up @@ -5,7 +5,7 @@
#include "HalideRuntimeOpenGL.h"
#include "SimpleAppAPI.h"

#include "halide_image.h"
#include "HalideImage.h"

#include "example4.h"
#include "example4_glsl.h"
Expand Down
4 changes: 2 additions & 2 deletions apps/wavelet/wavelet.cpp
Expand Up @@ -5,10 +5,10 @@
#include "daubechies_x.h"
#include "inverse_daubechies_x.h"

#include "halide_image.h"
#include "HalideImage.h"
#include "halide_image_io.h"

using namespace Halide::Tools;
using namespace Halide;

namespace {

Expand Down
8 changes: 4 additions & 4 deletions src/AddImageChecks.cpp
Expand Up @@ -387,7 +387,7 @@ Stmt add_image_checks(Stmt s,

stride_constrained = param.stride_constraint(i);
} else if (image.defined() && (int)i < image.dimensions()) {
stride_constrained = image.stride(i);
stride_constrained = image.dim(i).stride();
}

std::string min0_name = buffer_name + ".0.min." + dim;
Expand All @@ -404,9 +404,9 @@ Stmt add_image_checks(Stmt s,
extent_constrained = Variable::make(Int(32), extent0_name);
}
} else if (image.defined() && (int)i < image.dimensions()) {
stride_constrained = image.stride(i);
extent_constrained = image.extent(i);
min_constrained = image.min(i);
stride_constrained = image.dim(i).stride();
extent_constrained = image.dim(i).extent();
min_constrained = image.dim(i).min();
} else if (param.defined()) {
stride_constrained = param.stride_constraint(i);
extent_constrained = param.extent_constraint(i);
Expand Down
3 changes: 3 additions & 0 deletions src/Argument.h
Expand Up @@ -72,6 +72,9 @@ struct Argument {
<< "Scalar max must not be defined for Buffer Arguments";
}

template<typename T, int D>
Argument(const Image<T, D> &im) : kind(InputBuffer), dimensions(im.dimensions()), type(im.type()) {}

bool is_buffer() const { return kind == InputBuffer || kind == OutputBuffer; }
bool is_scalar() const { return kind == InputScalar; }

Expand Down
10 changes: 5 additions & 5 deletions src/BoundaryConditions.h
Expand Up @@ -99,7 +99,7 @@ template <typename T>
inline NO_INLINE Func constant_exterior(T func_like, Tuple value) {
std::vector<std::pair<Expr, Expr>> object_bounds;
for (int i = 0; i < func_like.dimensions(); i++) {
object_bounds.push_back(std::make_pair(Expr(func_like.min(i)), Expr(func_like.extent(i))));
object_bounds.push_back(std::make_pair(Expr(func_like.dim(i).min()), Expr(func_like.dim(i).extent())));
}

return constant_exterior(Internal::func_like_to_func(func_like), value, object_bounds);
Expand Down Expand Up @@ -143,7 +143,7 @@ template <typename T>
inline NO_INLINE Func repeat_edge(T func_like) {
std::vector<std::pair<Expr, Expr>> object_bounds;
for (int i = 0; i < func_like.dimensions(); i++) {
object_bounds.push_back(std::make_pair(Expr(func_like.min(i)), Expr(func_like.extent(i))));
object_bounds.push_back(std::make_pair(Expr(func_like.dim(i).min()), Expr(func_like.dim(i).extent())));
}

return repeat_edge(Internal::func_like_to_func(func_like), object_bounds);
Expand Down Expand Up @@ -178,7 +178,7 @@ template <typename T>
inline NO_INLINE Func repeat_image(T func_like) {
std::vector<std::pair<Expr, Expr>> object_bounds;
for (int i = 0; i < func_like.dimensions(); i++) {
object_bounds.push_back(std::make_pair(Expr(func_like.min(i)), Expr(func_like.extent(i))));
object_bounds.push_back(std::make_pair(Expr(func_like.dim(i).min()), Expr(func_like.dim(i).extent())));
}

return repeat_image(Internal::func_like_to_func(func_like), object_bounds);
Expand Down Expand Up @@ -212,7 +212,7 @@ template <typename T>
inline NO_INLINE Func mirror_image(T func_like) {
std::vector<std::pair<Expr, Expr>> object_bounds;
for (int i = 0; i < func_like.dimensions(); i++) {
object_bounds.push_back(std::make_pair(Expr(func_like.min(i)), Expr(func_like.extent(i))));
object_bounds.push_back(std::make_pair(Expr(func_like.dim(i).min()), Expr(func_like.dim(i).extent())));
}

return mirror_image(Internal::func_like_to_func(func_like), object_bounds);
Expand Down Expand Up @@ -249,7 +249,7 @@ template <typename T>
inline NO_INLINE Func mirror_interior(T func_like) {
std::vector<std::pair<Expr, Expr>> object_bounds;
for (int i = 0; i < func_like.dimensions(); i++) {
object_bounds.push_back(std::make_pair(Expr(func_like.min(i)), Expr(func_like.extent(i))));
object_bounds.push_back(std::make_pair(Expr(func_like.dim(i).min()), Expr(func_like.dim(i).extent())));
}

return mirror_interior(Internal::func_like_to_func(func_like), object_bounds);
Expand Down
7 changes: 4 additions & 3 deletions src/Bounds.cpp
Expand Up @@ -1527,12 +1527,13 @@ void bounds_test() {
vector<Expr> input_site_2 = {2*x+1};
vector<Expr> output_site = {x+1};

Buffer in(Int(32), {10}, nullptr, "input");
Image<int32_t, 1> in(10);
Buffer in_buf(in, "input");

Stmt loop = For::make("x", 3, 10, ForType::Serial, DeviceAPI::Host,
Provide::make("output",
{Add::make(Call::make(in, input_site_1),
Call::make(in, input_site_2))},
{Add::make(Call::make(in_buf, input_site_1),
Call::make(in_buf, input_site_2))},
output_site));

map<string, Box> r;
Expand Down

0 comments on commit d3a6b2b

Please sign in to comment.