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:
parent
8295be1621
commit
10ae105d9b
@ -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;
|
||||
|
17
test/CodeGen/Hexagon/rdf-ehlabel-live.mir
Normal file
17
test/CodeGen/Hexagon/rdf-ehlabel-live.mir
Normal 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
|
||||
...
|
||||
|
Loading…
Reference in New Issue
Block a user