Я использую встроенное хранилище масок llvm в нашем генераторе кода. Однако, поскольку это встроенная функция, я не могу пометить ее как volatile
, как в обычном хранилище llvm.
Есть ли какой-нибудь простой способ пометить их как volatile
или добавить заборы вокруг них, которые вызывают аналогичную функциональность? Я думал о чем-то вроде добавления заборов с syncscope
из "singlethreaded"
, но я не могу понять, сработает ли это.
Код, о котором идет речь, который не позволяет мне включить переменный параметр:
bldr.CreateMaskedStore(value, addrVal, align, mask);
(также я понимаю llvm volatile'ов и знаю, что я хочу, чтобы это было противоположно атомарным при другой синхронизации)