This patch adds 4 options for specifying functions, aliases, globals and structs name prefixes hat don't need to be renamed by MetaRenamer pass. This is useful if one has some downstream logic that depends directly on an entity name. MetaRenamer can break this logic, but with the patch you can tell it not to rename certain names. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D115323
59 lines
2.0 KiB
LLVM
59 lines
2.0 KiB
LLVM
; RUN: opt -passes=metarenamer -rename-exclude-function-prefixes=my_func -rename-exclude-global-prefixes=my_global -rename-exclude-struct-prefixes=my_struct -rename-exclude-alias-prefixes=my_alias -S %s | FileCheck %s
|
|
|
|
; Check that excluded names don't get renamed while all the other ones do
|
|
|
|
; CHECK: %my_struct1 = type { i8*, i32 }
|
|
; CHECK: %my_struct2 = type { i8*, i32 }
|
|
; CHECK-NOT: %other_struct = type { i8*, i32 }
|
|
; CHECK: @my_global1 = global i32 42
|
|
; CHECK: @my_global2 = global i32 24
|
|
; CHECK-NOT: @other_global = global i32 24
|
|
; CHECK: @my_alias1 = alias i32, i32* @my_global1
|
|
; CHECK: @my_alias2 = alias i32, i32* @my_global2
|
|
; CHECK-NOT: @other_alias = alias i32, i32* @other_global
|
|
; CHECK: declare void @my_func1
|
|
; CHECK: declare void @my_func2
|
|
; CHECK-NOT: declare void @other_func
|
|
|
|
; CHECK: call void @my_func1
|
|
; CHECK: call void @my_func2
|
|
; CHECK-NOT: call void @other_func
|
|
; CHECK: load i32, i32* @my_global1
|
|
; CHECK: load i32, i32* @my_global2
|
|
; CHECK-NOT: load i32, i32* @other_global
|
|
; CHECK: load i32, i32* @my_alias1
|
|
; CHECK: load i32, i32* @my_alias2
|
|
; CHECK-NOT: load i32, i32* @other_alias
|
|
; CHECK: alloca %my_struct1
|
|
; CHECK: alloca %my_struct2
|
|
; CHECK-NOT: alloca %other_struct
|
|
|
|
%my_struct1 = type { i8*, i32 }
|
|
%my_struct2 = type { i8*, i32 }
|
|
%other_struct = type { i8*, i32 }
|
|
@my_global1 = global i32 42
|
|
@my_global2 = global i32 24
|
|
@other_global = global i32 24
|
|
@my_alias1 = alias i32, i32* @my_global1
|
|
@my_alias2 = alias i32, i32* @my_global2
|
|
@other_alias = alias i32, i32* @other_global
|
|
declare void @my_func1()
|
|
declare void @my_func2()
|
|
declare void @other_func()
|
|
|
|
define void @some_func() {
|
|
call void @my_func1()
|
|
call void @my_func2()
|
|
call void @other_func()
|
|
%a = load i32, i32* @my_global1
|
|
%b = load i32, i32* @my_global2
|
|
%c = load i32, i32* @other_global
|
|
%d = load i32, i32* @my_alias1
|
|
%e = load i32, i32* @my_alias2
|
|
%f = load i32, i32* @other_alias
|
|
%g = alloca %my_struct1
|
|
%h = alloca %my_struct2
|
|
%i = alloca %other_struct
|
|
ret void
|
|
}
|