1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00

[Hexagon] Make sure that RDF does not remove EH_LABELs

Since EH_LABELs (and other labels) no longer have "side-effects", they
should be checked for separately.

llvm-svn: 318801
This commit is contained in:
Krzysztof Parzyszek 2017-11-21 21:05:51 +00:00
parent 8295be1621
commit 10ae105d9b
2 changed files with 19 additions and 1 deletions

View File

@ -58,7 +58,8 @@ private:
bool DeadCodeElimination::isLiveInstr(const MachineInstr *MI) const {
if (MI->mayStore() || MI->isBranch() || MI->isCall() || MI->isReturn())
return true;
if (MI->hasOrderedMemoryRef() || MI->hasUnmodeledSideEffects())
if (MI->hasOrderedMemoryRef() || MI->hasUnmodeledSideEffects() ||
MI->isPosition())
return true;
if (MI->isPHI())
return false;

View File

@ -0,0 +1,17 @@
# RUN: llc -march=hexagon -run-pass hexagon-rdf-opt -o - %s | FileCheck %s
# Check that EH_LABELs are not removed as dead (since they are no longer
# marked as having side-effects):
# CHECK-LABEL: fred
# CHECK: EH_LABEL
---
name: fred
tracksRegLiveness: true
body: |
bb.0:
%r0 = A2_tfrsi 0
EH_LABEL 0
...