On Fri, Feb 21, 2014 at 3:08 PM, Warren Hunt <[email protected]> wrote:
> Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=201901&r1=201900&r2=201901&view=diff > > ============================================================================== > --- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Fri Feb 21 17:08:53 2014 > @@ -1500,6 +1500,42 @@ RValue CodeGenFunction::EmitBuiltinExpr( > return RValue::get(EmitLValue(E->getArg(0)).getAddress()); > case Builtin::BI__noop: > return RValue::get(0); > + case Builtin::BI_InterlockedCompareExchange: { > + AtomicCmpXchgInst *CXI = Builder.CreateAtomicCmpXchg( > + EmitScalarExpr(E->getArg(0)), > + EmitScalarExpr(E->getArg(2)), > + EmitScalarExpr(E->getArg(1)), > + SequentiallyConsistent); > + CXI->setVolatile(true); > + return RValue::get(CXI); > + } > + case Builtin::BI_InterlockedIncrement: { > + AtomicRMWInst *RMWI = Builder.CreateAtomicRMW( > + AtomicRMWInst::Add, > + EmitScalarExpr(E->getArg(0)), > + ConstantInt::get(Int32Ty, 1), > + llvm::SequentiallyConsistent); > + RMWI->setVolatile(true); > + return RValue::get(Builder.CreateAdd(RMWI, ConstantInt::get(Int32Ty, > 1))); > + } > + case Builtin::BI_InterlockedDecrement: { > + AtomicRMWInst *RMWI = Builder.CreateAtomicRMW( > + AtomicRMWInst::Sub, > + EmitScalarExpr(E->getArg(0)), > + ConstantInt::get(Int32Ty, 1), > + llvm::SequentiallyConsistent); > + RMWI->setVolatile(true); > + return RValue::get(Builder.CreateSub(RMWI, ConstantInt::get(Int32Ty, > 1))); > + } > + case Builtin::BI_InterlockedExchangeAdd: { > + AtomicRMWInst *RMWI = Builder.CreateAtomicRMW( > + AtomicRMWInst::Add, > + EmitScalarExpr(E->getArg(0)), > + EmitScalarExpr(E->getArg(1)), > + llvm::SequentiallyConsistent); > + RMWI->setVolatile(true); > + return RValue::get(RMWI); > + } > Huh??? This doesn't seem to have anything to do with _mm_prefetch....
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
