From 8d6e57b2166f93d10d11dcae10e8a8c349a998d5 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Tue, 10 May 2016 04:51:14 +0000 Subject: LiveIntervalAnalysis: Rework constructMainRangeFromSubranges() We now use LiveRangeCalc::extendToUses() instead of a specially designed algorithm in constructMainRangeFromSubranges(): - The original motivation for constructMainRangeFromSubranges() were differences between the main liverange and subranges because of hidden dead definitions. This case however cannot happen anymore with the DetectDeadLaneMasks pass in place. - It simplifies the code. - This fixes a longstanding bug where we did not properly create new SSA values on merging control flow (the MachineVerifier missed most of these cases). - Move constructMainRangeFromSubranges() to LiveIntervalAnalysis and LiveRangeCalc to better match the implementation/available helper functions. llvm-svn: 269016 --- llvm/lib/CodeGen/LiveRangeCalc.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'llvm/lib/CodeGen/LiveRangeCalc.h') diff --git a/llvm/lib/CodeGen/LiveRangeCalc.h b/llvm/lib/CodeGen/LiveRangeCalc.h index ff38c68820f..9de48b72288 100644 --- a/llvm/lib/CodeGen/LiveRangeCalc.h +++ b/llvm/lib/CodeGen/LiveRangeCalc.h @@ -189,6 +189,11 @@ public: /// enabled. void calculate(LiveInterval &LI, bool TrackSubRegs); + /// For live interval \p LI with correct SubRanges construct matching + /// information for the main live range. Expects the main live range to not + /// have any segments or value numbers. + void constructMainRangeFromSubranges(LiveInterval &LI); + //===--------------------------------------------------------------------===// // Low-level interface. //===--------------------------------------------------------------------===// -- cgit v1.2.3