clover: Add semantic information to module::argument for implicit parameter passing.

Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu>
This commit is contained in:
Francisco Jerez 2014-10-08 17:32:18 +03:00
parent 27c51b5f58
commit 06139c56fa

View file

@ -68,27 +68,35 @@ namespace clover {
sign_ext
};
enum semantic {
general,
grid_dimension,
grid_offset
};
argument(enum type type, size_t size,
size_t target_size, size_t target_align,
enum ext_type ext_type) :
enum ext_type ext_type,
enum semantic semantic = general) :
type(type), size(size),
target_size(target_size), target_align(target_align),
ext_type(ext_type) { }
ext_type(ext_type), semantic(semantic) { }
argument(enum type type, size_t size) :
type(type), size(size),
target_size(size), target_align(1),
ext_type(zero_ext) { }
ext_type(zero_ext), semantic(general) { }
argument() : type(scalar), size(0),
target_size(0), target_align(1),
ext_type(zero_ext) { }
ext_type(zero_ext), semantic(general) { }
type type;
size_t size;
size_t target_size;
size_t target_align;
ext_type ext_type;
semantic semantic;
};
struct symbol {