mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
d4f51b5c4f
There's quite a lot of references to Polly in the LLVM CMake codebase. However the registration pattern used by Polly could be useful to other external projects: thanks to that mechanism it would be possible to develop LLVM extension without touching the LLVM code base. This patch has two effects: 1. Remove all code specific to Polly in the llvm/clang codebase, replaicing it with a generic mechanism 2. Provide a generic mechanism to register compiler extensions. A compiler extension is similar to a pass plugin, with the notable difference that the compiler extension can be configured to be built dynamically (like plugins) or statically (like regular passes). As a result, people willing to add extra passes to clang/opt can do it using a separate code repo, but still have their pass be linked in clang/opt as built-in passes. Differential Revision: https://reviews.llvm.org/D61446
30 lines
1.0 KiB
LLVM
30 lines
1.0 KiB
LLVM
; RUN: opt -mtriple=x86_64-- -O0 -debug-pass=Structure < %s -o /dev/null 2>&1 | FileCheck %s --check-prefixes=CHECK,%llvmcheckext
|
|
|
|
; REQUIRES: asserts
|
|
|
|
; CHECK-LABEL: Pass Arguments:
|
|
; CHECK-NEXT: Target Transform Information
|
|
; CHECK-NEXT: FunctionPass Manager
|
|
; CHECK-NEXT: Module Verifier
|
|
; CHECK-EXT: Good Bye World Pass
|
|
; CHECK-NEXT: Instrument function entry/exit with calls to e.g. mcount() (pre inlining)
|
|
; CHECK-NEXT: Pass Arguments:
|
|
; CHECK-NEXT: Target Library Information
|
|
; CHECK-NEXT: Target Transform Information
|
|
; Target Pass Configuration
|
|
; CHECK: Assumption Cache Tracker
|
|
; CHECK-NEXT: Profile summary info
|
|
; CHECK-NEXT: ModulePass Manager
|
|
; CHECK-NEXT: Force set function attributes
|
|
; CHECK-NEXT: CallGraph Construction
|
|
; CHECK-NEXT: Call Graph SCC Pass Manager
|
|
; CHECK-NEXT: Inliner for always_inline functions
|
|
; A No-Op Barrier Pass
|
|
; CHECK: FunctionPass Manager
|
|
; CHECK-NEXT: Module Verifier
|
|
; CHECK-NEXT: Bitcode Writer
|
|
|
|
define void @f() {
|
|
ret void
|
|
}
|