mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
add the prepareInitialization builtin.
It is like `zeroInitializer`, but does not actually initialize the memory. It only indicates to mandatory passes that the memory is going to be initialized.
This commit is contained in:
@@ -1009,7 +1009,8 @@ MemoryBehavior SILInstruction::getMemoryBehavior() const {
|
||||
if (auto *BI = dyn_cast<BuiltinInst>(this)) {
|
||||
// Handle Swift builtin functions.
|
||||
const BuiltinInfo &BInfo = BI->getBuiltinInfo();
|
||||
if (BInfo.ID == BuiltinValueKind::ZeroInitializer) {
|
||||
if (BInfo.ID == BuiltinValueKind::ZeroInitializer ||
|
||||
BInfo.ID == BuiltinValueKind::PrepareInitialization) {
|
||||
// The address form of `zeroInitializer` writes to its argument to
|
||||
// initialize it. The value form has no side effects.
|
||||
return BI->getArguments().size() > 0
|
||||
|
||||
Reference in New Issue
Block a user