[llvm-commits] [llvm] r99928 - in /llvm/trunk: include/llvm/ include/llvm/CodeGen/ include/llvm/Support/ include/llvm/Target/ include/llvm/Transforms/Utils/ lib/CodeGen/SelectionDAG/ lib/Target/ARM/ lib/Target/PowerPC/ lib/Target/X86/ lib/Target/XCore/ lib/Transforms/InstCombine/ lib/Transforms/Scalar/ lib/Transforms/Utils/ lib/VMCore/ test/Analysis/BasicAA/ test/Transforms/InstCombine/ test/Transforms/MemCpyOpt/ test/Transforms/SimplifyLibCalls/ test/Verifier/

Chris Lattner clattner at apple.com
Tue Mar 30 23:11:55 PDT 2010


On Mar 30, 2010, at 10:33 PM, Duncan Sands wrote:

> Hi Chris,
> 
>>> I'm trying to imagine situations in which a volatile mem* call is useful, but I
>>> didn't come up with anything very convincing yet.  Can you please explain what
>>> you have in mind.
>> 
>> volatile struct foo X, Y;
>> 
>> X = Y;
>> 
>> Should lower to a 'volatile memcpy'.
> 
> shouldn't it load to a series of field by field volatile copies?

Not if it is large.  C doesn't specify what to do here.

-Chris



More information about the llvm-commits mailing list