mirror of
https://github.com/RPCS3/llvm.git
synced 2026-01-31 01:25:19 +01:00
[ThinLTO] Add FunctionAttrs to ThinLTO index
Adds function attributes to index: ReadNone, ReadOnly, NoRecurse, NoAlias. This attributes will be used for future ThinLTO optimizations that will propagate function attributes across modules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310061 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
27
test/Bitcode/thinlto-function-summary-functionattrs.ll
Normal file
27
test/Bitcode/thinlto-function-summary-functionattrs.ll
Normal file
@@ -0,0 +1,27 @@
|
||||
; RUN: opt -module-summary %s -o %t.o
|
||||
; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s
|
||||
|
||||
; CHECK: <GLOBALVAL_SUMMARY_BLOCK
|
||||
; ensure @f is marked readnone
|
||||
; CHECK: <PERMODULE {{.*}} op0=0 {{.*}} op3=1
|
||||
; ensure @g is marked readonly
|
||||
; CHECK: <PERMODULE {{.*}} op0=1 {{.*}} op3=2
|
||||
; ensure @h is marked norecurse
|
||||
; CHECK: <PERMODULE {{.*}} op0=2 {{.*}} op3=4
|
||||
; ensure @i is marked returndoesnotalias
|
||||
; CHECK: <PERMODULE {{.*}} op0=3 {{.*}} op3=8
|
||||
|
||||
define void @f() readnone {
|
||||
ret void
|
||||
}
|
||||
define void @g() readonly {
|
||||
ret void
|
||||
}
|
||||
define void @h() norecurse {
|
||||
ret void
|
||||
}
|
||||
|
||||
define noalias i8* @i() {
|
||||
%r = alloca i8
|
||||
ret i8* %r
|
||||
}
|
||||
Reference in New Issue
Block a user