From 0c795842fd4dd3e6497fa15b06ecc7ef00d6c354 Mon Sep 17 00:00:00 2001 From: Chris Fallin Date: Thu, 12 Aug 2021 11:26:45 -0700 Subject: [PATCH] Add some more detail about spill bundles to design doc. --- doc/DESIGN.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/DESIGN.md b/doc/DESIGN.md index 6553e73..1fee67f 100644 --- a/doc/DESIGN.md +++ b/doc/DESIGN.md @@ -449,6 +449,11 @@ it is where liveranges go when we give up on processing them via the normal backtracking loop, and will only process them once more in the "second-chance" stage. +This fallback behavior implies that the spill bundle must always be +able to accept a spillslot allocation, i.e., it cannot require a +register. This invariant is what allows spill bundles to be processed +in a different way, after backtracking has completed. + The spill bundle acquires liveranges in two ways. First, as we split bundles, we will trim the split pieces in certain ways so that some liveranges are immediately placed in the spill bundle. Intuitively,