mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
Remove "Rewrite Symbols" from codegen pipeline
It breaks up the function pass manager in the codegen pipeline. With empty parameters, it looks at the -mllvm flag -rewrite-map-file. This is likely not in use. Add a check that we only have one function pass manager in the codegen pipeline. This required reverting commit 9583a3f2625818b78c0cf6d473cdedb9f23ad82c: "[AsmPrinter] Delete dead takeDeletedSymbsForFunction()". This was not NFC as initially thought. By coalescing two function psas managers, this exposed the reverted code as necessary. addr-label.ll was crashing due to an emitted blockaddress's block being removed but the label not emitted. Some tests relied on the fact that we had a module pass somewhere in the codegen pipeline. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D99707
This commit is contained in:
parent
fcd012c5b0
commit
ce364576b2
@ -924,7 +924,6 @@ void TargetPassConfig::addPassesToHandleExceptions() {
|
||||
void TargetPassConfig::addCodeGenPrepare() {
|
||||
if (getOptLevel() != CodeGenOpt::None && !DisableCGP)
|
||||
addPass(createCodeGenPreparePass());
|
||||
addPass(createRewriteSymbolsPass());
|
||||
}
|
||||
|
||||
/// Add common passes that perform LLVM IR to IR transforms in preparation for
|
||||
|
@ -24,8 +24,6 @@
|
||||
; CHECK-NEXT: Scalarize Masked Memory Intrinsics
|
||||
; CHECK-NEXT: Expand reduction intrinsics
|
||||
; CHECK-NEXT: AArch64 Stack Tagging
|
||||
; CHECK-NEXT: Rewrite Symbols
|
||||
; CHECK-NEXT: FunctionPass Manager
|
||||
; CHECK-NEXT: Exception handling preparation
|
||||
; CHECK-NEXT: Safe Stack instrumentation pass
|
||||
; CHECK-NEXT: Insert stack protectors
|
||||
|
@ -76,8 +76,6 @@
|
||||
; CHECK-NEXT: Interleaved Access Pass
|
||||
; CHECK-NEXT: Natural Loop Information
|
||||
; CHECK-NEXT: CodeGen Prepare
|
||||
; CHECK-NEXT: Rewrite Symbols
|
||||
; CHECK-NEXT: FunctionPass Manager
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Exception handling preparation
|
||||
; CHECK-NEXT: AArch64 Promote Constant
|
||||
|
@ -49,8 +49,6 @@
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Natural Loop Information
|
||||
; CHECK-NEXT: CodeGen Prepare
|
||||
; CHECK-NEXT: Rewrite Symbols
|
||||
; CHECK-NEXT: FunctionPass Manager
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Exception handling preparation
|
||||
; CHECK-NEXT: Merge internal globals
|
||||
|
@ -16,7 +16,7 @@ ret:
|
||||
}
|
||||
|
||||
|
||||
;; Issues with referring to a label that gets RAUW'd later.
|
||||
; Issues with referring to a label that gets RAUW'd later.
|
||||
define i32 @test2a() nounwind {
|
||||
entry:
|
||||
%target = bitcast i8* blockaddress(@test2b, %test_label) to i8*
|
||||
|
@ -28,8 +28,6 @@
|
||||
; CHECK-NEXT: Scalarize Masked Memory Intrinsics
|
||||
; CHECK-NEXT: Expand reduction intrinsics
|
||||
; CHECK-NEXT: Expand indirectbr instructions
|
||||
; CHECK-NEXT: Rewrite Symbols
|
||||
; CHECK-NEXT: FunctionPass Manager
|
||||
; CHECK-NEXT: Exception handling preparation
|
||||
; CHECK-NEXT: Safe Stack instrumentation pass
|
||||
; CHECK-NEXT: Insert stack protectors
|
||||
|
@ -6,6 +6,8 @@
|
||||
; RUN: | grep -v 'Verify generated machine code' | FileCheck %s
|
||||
; RUN: llc -mtriple=x86_64-- -O3 -debug-pass=Structure < %s -o /dev/null 2>&1 \
|
||||
; RUN: | grep -v 'Verify generated machine code' | FileCheck %s
|
||||
; RUN: llc -mtriple=x86_64-- -O3 -debug-pass=Structure < %s -o /dev/null 2>&1 \
|
||||
; RUN: | FileCheck %s --check-prefix=FPM
|
||||
|
||||
; REQUIRES: asserts
|
||||
|
||||
@ -61,8 +63,6 @@
|
||||
; CHECK-NEXT: Expand indirectbr instructions
|
||||
; CHECK-NEXT: Natural Loop Information
|
||||
; CHECK-NEXT: CodeGen Prepare
|
||||
; CHECK-NEXT: Rewrite Symbols
|
||||
; CHECK-NEXT: FunctionPass Manager
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Exception handling preparation
|
||||
; CHECK-NEXT: Safe Stack instrumentation pass
|
||||
@ -203,6 +203,12 @@
|
||||
; CHECK-NEXT: X86 Assembly Printer
|
||||
; CHECK-NEXT: Free MachineFunction
|
||||
|
||||
; We should only have one function pass manager.
|
||||
; In the past, module passes have accidentally been added into the middle of
|
||||
; the codegen pipeline, implicitly creating new function pass managers.
|
||||
; FPM: FunctionPass Manager
|
||||
; FPM-NOT: FunctionPass Manager
|
||||
|
||||
define void @f() {
|
||||
ret void
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: llc -mtriple=x86_64-unknown-unknown -print-after-all < %s 2>&1 | FileCheck %s
|
||||
; RUN: opt -mtriple=x86_64-unknown-unknown -codegenprepare -S < %s 2>&1 | FileCheck %s
|
||||
|
||||
; Function Attrs: norecurse nounwind readnone uwtable
|
||||
define i32 @foo(i32, i32, i32) {
|
||||
|
@ -10,10 +10,8 @@ define void @foo(){
|
||||
ret void
|
||||
}
|
||||
|
||||
;ALL-NOT: IR Dump After {{.*}}; ModuleID =
|
||||
;ALL: define void @tester()
|
||||
;ALL: define void @foo()
|
||||
;ALL: ModuleID =
|
||||
|
||||
;FOO: IR Dump After
|
||||
;FOO-NEXT: define void @foo()
|
||||
|
Loading…
Reference in New Issue
Block a user