问题标签 [function-attributes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
160 浏览

c++ - 每个模板实例化的 GCC/Clang 函数属性

我有一些手工矢量化的 C++ 代码,我正在尝试通过函数多版本化制作可分发的二进制文件。由于代码对不同的指令集(SSE2、AVX2、AVX512)使用 SIMD 内在函数,因此它使用模板特化来决定使用哪些内在函数。

整体架构大致如下:

现在的问题是我需要不同的实例化Worker来具有不同的属性,因为每个实例化都会针对不同的指令集。像这样的东西:

以便为这些不同的目标编译这些不同的实例。但是,这仍然会在 Clang 上产生错误:

如果我用它来注释原始方法,__attribute__((target("avx2,avx512")))但如果没有 AVX-512 支持,它会在运行时执行非法硬件指令,所以我猜我使用上述带注释的专业化的直觉是行不通的。

有没有办法使用函数属性用 Clang 或 GCC 来表达这一点?

0 投票
2 回答
36 浏览

python - 在 Python 中,如何将函数属性用作函数?

在 Python 中,您可以定义一个函数属性“call_count”,这样:

这打印:

如果我不想调用 sumCounter.call_count,而是想调用函数属性 sumCounter.call_count(),该怎么办?也就是说,一个“看起来”像类方法的函数属性?怎么可能做到这一点?

0 投票
0 回答
326 浏览

c++ - 如何在 LLVM Pass 中获取自定义属性

如官方手册中所述,我在 clang 中实现了一个自定义属性:

如何在 Clang 中添加属性

我添加了一个定义include/clang/Basic/Attr.td

SemaDeclAttr.cpp并通过增加一个新的case来实现属性in的语义处理。

重建clang后,它显然知道该属性,因为我在使用它时没有收到未知属性警告。

但我无法在 LLVM Pass by function 中获取此属性hasFnAttribute()

Attribute::AttrKind没有Attribute::attr。我尝试更改/llvm/include/llvm/IR/Attributes.td和一些代码以使 clang 运行。但它没有用。

还有什么我需要考虑的或者可能是什么问题?

0 投票
0 回答
13 浏览

asp.net-web-api - 如何在 MessageHandler 中查看 WebAPI 函数的属性?

我正在使用 WebAPI 制作产品,我需要记录几乎每个 API 调用。我通过制作一个拦截所有请求并且工作正常的 MessageHandler 来做到这一点。

现在我有一些被称为 A LOT 的端点,我想排除它们。

一个很好的方法是创建一个像这样的属性 [OmitLogging]:

但我不知道是否可以在我的 MessageHandler 中看到这个属性。