mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
Remove dead SD nodes after the combining pass. Fixes PR12201.
llvm-svn: 154786
This commit is contained in:
parent
fc5ab5d388
commit
457fbe481c
@ -1080,6 +1080,7 @@ void DAGCombiner::Run(CombineLevel AtLevel) {
|
|||||||
|
|
||||||
// If the root changed (e.g. it was a dead load, update the root).
|
// If the root changed (e.g. it was a dead load, update the root).
|
||||||
DAG.setRoot(Dummy.getValue());
|
DAG.setRoot(Dummy.getValue());
|
||||||
|
DAG.RemoveDeadNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
SDValue DAGCombiner::visit(SDNode *N) {
|
SDValue DAGCombiner::visit(SDNode *N) {
|
||||||
|
46
test/CodeGen/PowerPC/ppc-vaarg-agg.ll
Normal file
46
test/CodeGen/PowerPC/ppc-vaarg-agg.ll
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32"
|
||||||
|
target triple = "powerpc-montavista-linux-gnuspe"
|
||||||
|
; RUN: llc < %s -march=ppc32 | FileCheck %s
|
||||||
|
|
||||||
|
%struct.__va_list_tag.0.9.18.23.32.41.48.55.62.67.72.77.82.87.90.93.96.101.105 = type { i8, i8, i16, i8*, i8* }
|
||||||
|
|
||||||
|
define fastcc void @test1(%struct.__va_list_tag.0.9.18.23.32.41.48.55.62.67.72.77.82.87.90.93.96.101.105* %args) {
|
||||||
|
entry:
|
||||||
|
br i1 undef, label %repeat, label %maxlen_reached
|
||||||
|
|
||||||
|
repeat: ; preds = %entry
|
||||||
|
switch i32 undef, label %sw.bb323 [
|
||||||
|
i32 77, label %sw.bb72
|
||||||
|
i32 111, label %sw.bb309
|
||||||
|
i32 80, label %sw.bb313
|
||||||
|
i32 117, label %sw.bb326
|
||||||
|
i32 88, label %sw.bb321
|
||||||
|
]
|
||||||
|
|
||||||
|
sw.bb72: ; preds = %repeat
|
||||||
|
unreachable
|
||||||
|
|
||||||
|
sw.bb309: ; preds = %repeat
|
||||||
|
unreachable
|
||||||
|
|
||||||
|
sw.bb313: ; preds = %repeat
|
||||||
|
unreachable
|
||||||
|
|
||||||
|
sw.bb321: ; preds = %repeat
|
||||||
|
unreachable
|
||||||
|
|
||||||
|
sw.bb323: ; preds = %repeat
|
||||||
|
%0 = va_arg %struct.__va_list_tag.0.9.18.23.32.41.48.55.62.67.72.77.82.87.90.93.96.101.105* %args, i32
|
||||||
|
unreachable
|
||||||
|
|
||||||
|
sw.bb326: ; preds = %repeat
|
||||||
|
unreachable
|
||||||
|
|
||||||
|
maxlen_reached: ; preds = %entry
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
|
; If the SD nodes are not cleaup up correctly, then this can fail to compile
|
||||||
|
; with an error like: Cannot select: ch = setlt [ID=6]
|
||||||
|
; CHECK: @test1
|
||||||
|
|
Loading…
Reference in New Issue
Block a user