aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectLanguage.cpp
diff options
context:
space:
mode:
authorPete Cooper <peter_cooper@apple.com>2015-05-04 16:52:06 +0000
committerPete Cooper <peter_cooper@apple.com>2015-05-04 16:52:06 +0000
commit300069a01913b26ae30fcf1770be89cb3e04ef39 (patch)
tree508d12bed482e429e48e803813c96acdef066fee /lldb/source/Commands/CommandObjectLanguage.cpp
parentb81f4aa95297e1bb11d6805ea6d66b6ec960bd8f (diff)
downloadllvm-300069a01913b26ae30fcf1770be89cb3e04ef39.zip
llvm-300069a01913b26ae30fcf1770be89cb3e04ef39.tar.gz
llvm-300069a01913b26ae30fcf1770be89cb3e04ef39.tar.bz2
ScheduleDAGInstrs should toggle kill flags on bundled instrs.
ScheduleDAGInstrs wasn't setting or clearing the kill flags on instructions inside bundles. This led to code such as this %R3<def> = t2ANDrr %R0 BUNDLE %ITSTATE<imp-def,dead>, %R0<imp-use,kill> t2IT 1, 24, %ITSTATE<imp-def> R6<def,tied6> = t2ORRrr %R0<kill>, ... being transformed to BUNDLE %ITSTATE<imp-def,dead>, %R0<imp-use> t2IT 1, 24, %ITSTATE<imp-def> R6<def,tied6> = t2ORRrr %R0<kill>, ... %R3<def> = t2ANDrr %R0<kill> where the kill flag was removed from the BUNDLE instruction, but not the t2ORRrr inside it. The verifier then thought that R0 was undefined when read by the AND. This change make the toggleKillFlags method also check for bundles and toggle flags on bundled instructions. Setting the kill flag is special cased as we only want to set the kill flag on the last instruction in the bundle. llvm-svn: 236428
Diffstat (limited to 'lldb/source/Commands/CommandObjectLanguage.cpp')
0 files changed, 0 insertions, 0 deletions