Displaying 2 results from an estimated 2 matches for "mystruct_t".
2015 Nov 10
4
SROA and volatile memcpy/memset
...ons. This is clearly worse than doing the copy and then the
member overwrite.
--- test.c ---
typedef struct {
volatile unsigned int value;
} atomic_word_t;
typedef union {
struct {
unsigned char state;
unsigned char priority;
};
atomic_word_t atomic;
unsigned int full;
} mystruct_t;
mystruct_t a;
unsigned int foo(void) {
mystruct_t x;
mystruct_t y;
x.full = a.atomic.value;
y = x;
y.priority = 7;
return y.full;
}
--------------
-Krzysztof
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
2015 Nov 10
2
SROA and volatile memcpy/memset
Hi,
I have a customer testcase where SROA splits a volatile memcpy and we
end up generating bad code[1]. While this looks like a bug, simply
preventing SROA from splitting volatile memory intrinsics causes
basictest.ll for SROA to fail. Not only that, but it also seems like
handling of volatile memory transfers was done with some intent.
What are the design decisions in SROA regarding