[SIL] NFC: Migrate BuiltinInst to InstructionBaseWithTrailingOperands

This commit is contained in:
David Zarzycki
2017-12-23 16:13:17 -05:00
parent 33300640ae
commit f572569fb1
3 changed files with 7 additions and 37 deletions

View File

@@ -383,15 +383,10 @@ BuiltinInst *BuiltinInst::create(SILDebugLocation Loc, Identifier Name,
BuiltinInst::BuiltinInst(SILDebugLocation Loc, Identifier Name,
SILType ReturnType, SubstitutionList Subs,
ArrayRef<SILValue> Args)
: InstructionBase(Loc, ReturnType), Name(Name) {
: InstructionBaseWithTrailingOperands(Args, Loc, ReturnType), Name(Name) {
SILInstruction::Bits.BuiltinInst.NumSubstitutions = Subs.size();
assert(SILInstruction::Bits.BuiltinInst.NumSubstitutions == Subs.size() &&
"Truncation");
SILInstruction::Bits.BuiltinInst.NumOperands = Args.size();
Operand *dynamicSlot = getTrailingObjects<Operand>();
for (auto value : Args) {
new (dynamicSlot++) Operand(this, value);
}
std::uninitialized_copy(Subs.begin(), Subs.end(),
getTrailingObjects<Substitution>());
}