Returns an array of indexes the LiveRange is live at.
R is a range of ascending sorted random access iterators to the input SlotIndexes.
Complexity is proportional to O(segments.size * lg(R)) due to a binary search used.
Differential D62411
LiveIntervals: add LiveRange::findIndexesLiveAt function - return a list of SlotIndexes the LiveRange live at. vpykhtin on May 24 2019, 10:52 AM. Authored by
Details Returns an array of indexes the LiveRange is live at. R is a range of ascending sorted random access iterators to the input SlotIndexes. Complexity is proportional to O(segments.size * lg(R)) due to a binary search used.
Diff Detail
Event Timeline
Comment Actions
Comment Actions this implementation contains bug with upper segment boundary and misses opportunity to search on sorted segments too, fixing. Comment Actions
Comment Actions Hi, this is the parent revision for the https://reviews.llvm.org/D62401. Briefly AMDGPU backend needs live-in/live-out virtual register sets to calculate register pressure for the beginning/ending of every basic block on scheduling. For the large number of BBs this takes minutes. This patch makes it times faster. |