search for: cgexpragg

Displaying 4 results from an estimated 4 matches for "cgexpragg".

2013 Jan 20
2
[LLVMdev] [cfe-dev] codegen of volatile aggregate copies (was "Weird volatile propagation" on llvm-dev)
...specified and it is > unwise to depend on it". The new SROA implementation is conservatively > correct, but behaves differently. > > I believe we should either : > - rework methods AggExprEmitter::EmitCopy and > CodeGenFunction::EmitAggregateCopy (from > clang/lib/CodeGen/CGExprAgg.cpp) to codegen differently the copy when > either the source or the destination is volatile, > I think this is bad... > - specify cleanly the memcpy intrinsic with respect to volatile behaviour > I agree that this is what we should do. I took a conservative approach when implemen...
2013 Jan 20
0
[LLVMdev] codegen of volatile aggregate copies (was "Weird volatile propagation" on llvm-dev)
...cess behavior is not very cleanly specified and it is unwise to depend on it". The new SROA implementation is conservatively correct, but behaves differently. I believe we should either : - rework methods AggExprEmitter::EmitCopy and CodeGenFunction::EmitAggregateCopy (from clang/lib/CodeGen/CGExprAgg.cpp) to codegen differently the copy when either the source or the destination is volatile, - specify cleanly the memcpy intrinsic with respect to volatile behaviour I would prefer option #2 as having a parameter whose effect is unspecified does not make it very useful and invite more problems la...
2013 Jan 21
0
[LLVMdev] [cfe-dev] codegen of volatile aggregate copies (was "Weird volatile propagation" on llvm-dev)
...unwise to depend on it". The new SROA implementation is conservatively > correct, but behaves differently. > > I believe we should either : > - rework methods AggExprEmitter::EmitCopy and > CodeGenFunction::EmitAggregateCopy (from > clang/lib/CodeGen/CGExprAgg.cpp) to codegen differently the copy when > either the source or the destination is volatile, > > > I think this is bad... > > > - specify cleanly the memcpy intrinsic with respect to volatile > behaviour > > > I agree that this is what we should do....
2013 Jan 18
2
[LLVMdev] Weird volatile propagation ?
Hi All, Using clang+llvm at head, I noticed a weird behaviour with the following reduced testcase : $ cat test.c #include <stdint.h> struct R { uint16_t a; uint16_t b; }; volatile struct R * const addr = (volatile struct R *) 416; void test(uint16_t a) { struct R r = { a, 1 }; *addr = r; } $ clang -O2 -o - -emit-llvm -S -c test.c ; ModuleID = 'test.c' target