Use atomic allocations when safe in LLVM codegen.

This reduces the amount of memory Boehm has to scan.