[sil] Eliminate end_borrow_argument now that end_borrow has a single operand.

I changed all of the places that used end_borrow_argument to use end_borrow.

NOTE: I discovered in the process of this patch that we are not verifying
guaranteed block arguments completely. I disabled the tests here that show this
bad behavior and am going to re-enable them with more tests in a separate PR.
This has not been a problem since SILGen does not emit any such arguments as
guaranteed today. But once I do the SILGenPattern work this will change.

rdar://33440767
This commit is contained in:
Michael Gottesman
2018-09-04 20:36:07 -07:00
parent 6f3b6182bc
commit 0290cd4323
20 changed files with 40 additions and 242 deletions

View File

@@ -3221,18 +3221,6 @@ public:
}
};
/// Represents the end of a borrow scope for an argument. The reason why this is
/// separate from end_borrow is that an argument is not borrowed from a
/// specific SSA value. Instead it is borrowed from potentially many different
/// incoming values.
class EndBorrowArgumentInst
: public UnaryInstructionBase<SILInstructionKind::EndBorrowArgumentInst,
NonValueInstruction> {
friend class SILBuilder;
EndBorrowArgumentInst(SILDebugLocation DebugLoc, SILArgument *Arg);
};
/// Different kinds of access.
enum class SILAccessKind : uint8_t {
/// An access which takes uninitialized memory and initializes it.