summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/clover/llvm/invocation.cpp
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2013-07-21 01:14:54 +0200
committerFrancisco Jerez <currojerez@riseup.net>2013-07-21 19:13:40 +0200
commit789204bcd5e8a8f3ad01ab4559edb6254816fb99 (patch)
tree9498e88fe9fe0c6adc57c2a801f1f0c9598b8b5f /src/gallium/state_trackers/clover/llvm/invocation.cpp
parentf760ea7f551e8a2e5f5057be2a8972fb67bf5491 (diff)
clover: Respect kernel argument alignment restrictions.HEADmaster
Diffstat (limited to 'src/gallium/state_trackers/clover/llvm/invocation.cpp')
-rw-r--r--src/gallium/state_trackers/clover/llvm/invocation.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp
index a50cf37dfcb..2c6c1d46882 100644
--- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
+++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
@@ -317,6 +317,7 @@ namespace {
TD.getSmallestLegalIntType(mod->getContext(), arg_size * 8) :
arg_type;
unsigned target_size = TD.getTypeStoreSize(target_type);
+ unsigned target_align = TD.getABITypeAlignment(target_type);
if (llvm::isa<llvm::PointerType>(arg_type) && arg.hasByValAttr()) {
arg_type =
@@ -332,7 +333,7 @@ namespace {
default:
args.push_back(
module::argument(module::argument::global, arg_size,
- target_size, 0,
+ target_size, target_align,
module::argument::zero_ext));
break;
}
@@ -347,7 +348,7 @@ namespace {
args.push_back(
module::argument(module::argument::scalar, arg_size,
- target_size, 0, ext_type));
+ target_size, target_align, ext_type));
}
}