mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
Do not call Loop::getName on possibly dead loops
This fixes PR34832. llvm-svn: 314938
This commit is contained in:
parent
61d1a4c598
commit
6419f6461c
@ -56,8 +56,10 @@ bool LoopAnalysisManagerFunctionProxy::Result::invalidate(
|
|||||||
// analysis manager's cache. So we just walk the keys and forcibly clear
|
// analysis manager's cache. So we just walk the keys and forcibly clear
|
||||||
// those results. Note that the order doesn't matter here as this will just
|
// those results. Note that the order doesn't matter here as this will just
|
||||||
// directly destroy the results without calling methods on them.
|
// directly destroy the results without calling methods on them.
|
||||||
for (Loop *L : PreOrderLoops)
|
for (Loop *L : PreOrderLoops) {
|
||||||
InnerAM->clear(*L, L->getName());
|
// NB! `L` may not be in a good enough state to run Loop::getName.
|
||||||
|
InnerAM->clear(*L, "<possibly invalidated loop>");
|
||||||
|
}
|
||||||
|
|
||||||
// We also need to null out the inner AM so that when the object gets
|
// We also need to null out the inner AM so that when the object gets
|
||||||
// destroyed as invalid we don't try to clear the inner AM again. At that
|
// destroyed as invalid we don't try to clear the inner AM again. At that
|
||||||
|
@ -57,7 +57,7 @@ define void @one_loop(i1* %ptr) {
|
|||||||
; CHECK-LOOP-INV-NEXT: Finished {{.*}}Loop pass manager run.
|
; CHECK-LOOP-INV-NEXT: Finished {{.*}}Loop pass manager run.
|
||||||
; CHECK-LOOP-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}LoopAnalysis
|
; CHECK-LOOP-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}LoopAnalysis
|
||||||
; CHECK-LOOP-INV-NEXT: Invalidating all non-preserved analyses
|
; CHECK-LOOP-INV-NEXT: Invalidating all non-preserved analyses
|
||||||
; CHECK-LOOP-INV-NEXT: Clearing all analysis results for: l0.header
|
; CHECK-LOOP-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
|
||||||
; CHECK-LOOP-INV-NEXT: Invalidating analysis: LoopAnalysis
|
; CHECK-LOOP-INV-NEXT: Invalidating analysis: LoopAnalysis
|
||||||
; CHECK-LOOP-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
|
; CHECK-LOOP-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-LOOP-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
|
; CHECK-LOOP-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
|
||||||
@ -84,7 +84,7 @@ define void @one_loop(i1* %ptr) {
|
|||||||
; CHECK-SCEV-INV-NEXT: Finished {{.*}}Loop pass manager run.
|
; CHECK-SCEV-INV-NEXT: Finished {{.*}}Loop pass manager run.
|
||||||
; CHECK-SCEV-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ScalarEvolutionAnalysis
|
; CHECK-SCEV-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ScalarEvolutionAnalysis
|
||||||
; CHECK-SCEV-INV-NEXT: Invalidating all non-preserved analyses
|
; CHECK-SCEV-INV-NEXT: Invalidating all non-preserved analyses
|
||||||
; CHECK-SCEV-INV-NEXT: Clearing all analysis results for: l0.header
|
; CHECK-SCEV-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
|
||||||
; CHECK-SCEV-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
|
; CHECK-SCEV-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-SCEV-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
|
; CHECK-SCEV-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
|
||||||
; CHECK-SCEV-INV-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}> on one_loop
|
; CHECK-SCEV-INV-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}> on one_loop
|
||||||
@ -124,8 +124,8 @@ define void @nested_loops(i1* %ptr) {
|
|||||||
; CHECK-LOOP-INV: Finished {{.*}}Loop pass manager run.
|
; CHECK-LOOP-INV: Finished {{.*}}Loop pass manager run.
|
||||||
; CHECK-LOOP-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}LoopAnalysis
|
; CHECK-LOOP-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}LoopAnalysis
|
||||||
; CHECK-LOOP-INV-NEXT: Invalidating all non-preserved analyses
|
; CHECK-LOOP-INV-NEXT: Invalidating all non-preserved analyses
|
||||||
; CHECK-LOOP-INV-NEXT: Clearing all analysis results for: l.0.header
|
; CHECK-LOOP-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
|
||||||
; CHECK-LOOP-INV-NEXT: Clearing all analysis results for: l.0.0.header
|
; CHECK-LOOP-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
|
||||||
; CHECK-LOOP-INV-NEXT: Invalidating analysis: LoopAnalysis
|
; CHECK-LOOP-INV-NEXT: Invalidating analysis: LoopAnalysis
|
||||||
; CHECK-LOOP-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
|
; CHECK-LOOP-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-LOOP-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
|
; CHECK-LOOP-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
|
||||||
@ -158,8 +158,8 @@ define void @nested_loops(i1* %ptr) {
|
|||||||
; CHECK-SCEV-INV: Finished {{.*}}Loop pass manager run.
|
; CHECK-SCEV-INV: Finished {{.*}}Loop pass manager run.
|
||||||
; CHECK-SCEV-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ScalarEvolutionAnalysis
|
; CHECK-SCEV-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ScalarEvolutionAnalysis
|
||||||
; CHECK-SCEV-INV-NEXT: Invalidating all non-preserved analyses
|
; CHECK-SCEV-INV-NEXT: Invalidating all non-preserved analyses
|
||||||
; CHECK-SCEV-INV-NEXT: Clearing all analysis results for: l.0.header
|
; CHECK-SCEV-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
|
||||||
; CHECK-SCEV-INV-NEXT: Clearing all analysis results for: l.0.0.header
|
; CHECK-SCEV-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
|
||||||
; CHECK-SCEV-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
|
; CHECK-SCEV-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-SCEV-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
|
; CHECK-SCEV-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
|
||||||
; CHECK-SCEV-INV-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}> on nested_loops
|
; CHECK-SCEV-INV-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}> on nested_loops
|
||||||
@ -206,7 +206,7 @@ define void @dead_loop() {
|
|||||||
; CHECK-LOOP-INV-NEXT: Finished {{.*}}Loop pass manager run.
|
; CHECK-LOOP-INV-NEXT: Finished {{.*}}Loop pass manager run.
|
||||||
; CHECK-LOOP-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}LoopAnalysis
|
; CHECK-LOOP-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}LoopAnalysis
|
||||||
; CHECK-LOOP-INV-NEXT: Invalidating all non-preserved analyses
|
; CHECK-LOOP-INV-NEXT: Invalidating all non-preserved analyses
|
||||||
; CHECK-LOOP-INV-NEXT: Clearing all analysis results for: l0.header
|
; CHECK-LOOP-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
|
||||||
; CHECK-LOOP-INV-NEXT: Invalidating analysis: LoopAnalysis
|
; CHECK-LOOP-INV-NEXT: Invalidating analysis: LoopAnalysis
|
||||||
; CHECK-LOOP-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
|
; CHECK-LOOP-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-LOOP-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
|
; CHECK-LOOP-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
|
||||||
@ -233,7 +233,7 @@ define void @dead_loop() {
|
|||||||
; CHECK-SCEV-INV-NEXT: Finished {{.*}}Loop pass manager run.
|
; CHECK-SCEV-INV-NEXT: Finished {{.*}}Loop pass manager run.
|
||||||
; CHECK-SCEV-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ScalarEvolutionAnalysis
|
; CHECK-SCEV-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ScalarEvolutionAnalysis
|
||||||
; CHECK-SCEV-INV-NEXT: Invalidating all non-preserved analyses
|
; CHECK-SCEV-INV-NEXT: Invalidating all non-preserved analyses
|
||||||
; CHECK-SCEV-INV-NEXT: Clearing all analysis results for: l0.header
|
; CHECK-SCEV-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
|
||||||
; CHECK-SCEV-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
|
; CHECK-SCEV-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-SCEV-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
|
; CHECK-SCEV-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
|
||||||
; CHECK-SCEV-INV-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}> on dead_loop
|
; CHECK-SCEV-INV-NEXT: Running pass: FunctionToLoopPassAdaptor<{{.*}}> on dead_loop
|
||||||
|
Loading…
Reference in New Issue
Block a user