[Mesa-dev] [PATCH] clover: fix llvm 3.5 build error
orome
jan.vesely at rutgers.edu
Sun Aug 9 09:52:13 PDT 2015
On Sun, 2015-08-09 at 15:39 +0200, Zoltan Gilian wrote:
> There is no MDOperand in llvm 3.5.
>
> v2: Check if kernel metadata is present to avoid crash (EdB).
still builds for me.
thanks,
Jan
> ---
> .../state_trackers/clover/llvm/invocation.cpp | 22
> +++++++++++++---------
> 1 file changed, 13 insertions(+), 9 deletions(-)
>
> diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp
> b/src/gallium/state_trackers/clover/llvm/invocation.cpp
> index 50c4557..8fd5807 100644
> --- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
> +++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
> @@ -371,12 +371,13 @@ namespace {
> return kernel_node;
> }
>
> - llvm::MDNode*
> - node_from_op_checked(const llvm::MDOperand &md_operand,
> - llvm::StringRef expect_name,
> - unsigned expect_num_args)
> + const llvm::MDNode *
> + get_operand_checked(const llvm::MDNode *parent,
> + const unsigned op_idx,
> + const llvm::StringRef expect_name,
> + const unsigned expect_num_args)
> {
> - auto node = llvm::cast<llvm::MDNode>(md_operand);
> + auto node = llvm::cast<llvm::MDNode>(parent
> ->getOperand(op_idx));
> assert(node->getNumOperands() == expect_num_args &&
> "Wrong number of operands.");
>
> @@ -399,10 +400,13 @@ namespace {
> auto num_args = kernel_func->getArgumentList().size();
>
> auto kernel_node = get_kernel_metadata(kernel_func);
> - auto aq = node_from_op_checked(kernel_node->getOperand(2),
> - "kernel_arg_access_qual",
> num_args + 1);
> - auto ty = node_from_op_checked(kernel_node->getOperand(3),
> - "kernel_arg_type", num_args +
> 1);
> + if (!kernel_node)
> + return std::vector<kernel_arg_md>(num_args,
> kernel_arg_md("", ""));
> +
> + auto aq = get_operand_checked(kernel_node, 2,
> "kernel_arg_access_qual",
> + num_args + 1);
> + auto ty = get_operand_checked(kernel_node, 3,
> "kernel_arg_type",
> + num_args + 1);
>
> std::vector<kernel_arg_md> res;
> res.reserve(num_args);
More information about the mesa-dev
mailing list