[cfe-commits] r109960 - in /cfe/trunk: lib/CodeGen/CGObjCMac.cpp test/CodeGenObjC/exceptions.m test/CodeGenObjC/synchronized.m
clattner at apple.com
Tue Aug 3 16:16:02 PDT 2010
On Jul 31, 2010, at 5:47 PM, John McCall wrote:
> On Jul 31, 2010, at 5:38 PM, Chris Lattner wrote:
>> Inline assembly? Yuck. I thought that [llvm-]gcc just marked tons of locals as volatile?
> It does, but then it ends up with all these horrible liveness problems it has to work around.
> It's also done in a really intrusive way in the type-checker.
> It looked like my only bet for avoiding that without intrusive changes to IR gen — i.e.
> some way of saying "okay, these things are volatile even if the AST says they aren't" —
> was to go back over the function at the end and mark every single load and store
> as volatile. I didn't really consider that acceptable.
I agree that the gcc implementation of this is terrible, but the end result (load/store operations being marked volatile) isn't so terrible. What's wrong with a pass after IRGen that marks all accesses to allocas volatile?
More information about the cfe-commits