summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2016-01-20 00:23:21 +0000
committerMatthias Braun <matze@braunis.de>2016-01-20 00:23:21 +0000
commit3907fded1ba9ee584b10ce0ee09920c22e169837 (patch)
tree5e5843e321f0073b7eb7219dfd2e35128c842ace /lldb/packages/Python/lldbsuite/test/python_api
parent2e045bbc5f1001a908bfb9267b792bdc6dd72c5d (diff)
downloadbcm5719-llvm-3907fded1ba9ee584b10ce0ee09920c22e169837.tar.gz
bcm5719-llvm-3907fded1ba9ee584b10ce0ee09920c22e169837.zip
LiveInterval: Add utility class to rename independent subregister usage
This renaming is necessary to avoid a subregister aware scheduler accidentally creating liveness "holes" which are rejected by the MachineVerifier. Explanation as found in this patch: Helper class that can divide MachineOperands of a virtual register into equivalence classes of connected components. MachineOperands belong to the same equivalence class when they are part of the same SubRange segment or adjacent segments (adjacent in control flow); Different subranges affected by the same MachineOperand belong to the same equivalence class. Example: vreg0:sub0 = ... vreg0:sub1 = ... vreg0:sub2 = ... ... xxx = op vreg0:sub1 vreg0:sub1 = ... store vreg0:sub0_sub1 The example contains 3 different equivalence classes: - One for the (dead) vreg0:sub2 definition - One containing the first vreg0:sub1 definition and its use, but not the second definition! - The remaining class contains all other operands involving vreg0. We provide a utility function here to rename disjunct classes to different virtual registers. Differential Revision: http://reviews.llvm.org/D16126 llvm-svn: 258257
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud