mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
204 lines
5.4 KiB
YAML
204 lines
5.4 KiB
YAML
#
|
|
# This file is distributed under the MIT License. See LICENSE.md for details.
|
|
#
|
|
|
|
containers:
|
|
- name: binaries-container
|
|
type: BinariesContainer
|
|
- name: llvm-root
|
|
type: LLVMRootContainer
|
|
- name: model-header
|
|
type: CBytesContainer
|
|
- name: model-types
|
|
type: PTMLCTypeContainer
|
|
- name: cfg-map
|
|
type: CFGMap
|
|
- name: llvm-functions
|
|
type: LLVMFunctionContainer
|
|
- name: hexdump
|
|
type: HexDumpContainer
|
|
- name: assembly-internal
|
|
type: AssemblyInternalContainer
|
|
- name: assembly
|
|
type: AssemblyContainer
|
|
- name: object-file
|
|
type: ObjectFileContainer
|
|
- name: translated
|
|
type: TranslatedContainer
|
|
- name: llvm-root-with-functions
|
|
type: LLVMRootContainer
|
|
|
|
branches:
|
|
files-imported:
|
|
tasks:
|
|
- pipe: ImportFiles
|
|
arguments: [binaries-container]
|
|
|
|
lift:
|
|
from: files-imported
|
|
tasks:
|
|
- pipe: Lift
|
|
arguments: [binaries-container, llvm-root]
|
|
- pipe: PureLLVMPassesRootPipe
|
|
arguments: [llvm-root]
|
|
configuration:
|
|
Passes:
|
|
- globaldce
|
|
- savepoint: lifted
|
|
containers: [llvm-root]
|
|
artifacts:
|
|
- name: lift
|
|
container: llvm-root
|
|
|
|
collect-cfg:
|
|
from: lift
|
|
tasks:
|
|
- pipe: CollectCFG
|
|
arguments: [llvm-root, cfg-map]
|
|
- savepoint: cfg-computed
|
|
containers: [cfg-map]
|
|
|
|
isolate:
|
|
from: collect-cfg
|
|
tasks:
|
|
- pipe: Isolate
|
|
arguments: [cfg-map, llvm-root, llvm-functions]
|
|
- pipe: AttachDebugInfo
|
|
arguments: [cfg-map, llvm-functions]
|
|
- savepoint: isolate
|
|
containers: [llvm-functions]
|
|
artifacts:
|
|
- name: isolate
|
|
container: llvm-functions
|
|
|
|
enforce-abi:
|
|
from: isolate
|
|
tasks:
|
|
- pipe: EnforceABI
|
|
arguments: [cfg-map, llvm-functions]
|
|
- pipe: PureLLVMPassesPipe
|
|
arguments: [llvm-functions]
|
|
configuration:
|
|
Passes:
|
|
- strip-debug-info-from-helpers
|
|
# Note: we're running promote-csvs twice: it is important to run
|
|
# it before inline-helpers so that mem2reg can constant
|
|
# propagate helper arguments that are constant. This enables
|
|
# us to inline less code, in particular for helpers such as
|
|
# `cc_compute_c` and `cc_compute_all`.
|
|
- pipe: PromoteCSVs
|
|
arguments: [llvm-functions]
|
|
- pipe: PureLLVMPassesPipe
|
|
arguments: [llvm-functions]
|
|
configuration:
|
|
Passes:
|
|
- mem2reg
|
|
- inline-helpers
|
|
- pipe: AttachDebugInfo
|
|
arguments: [cfg-map, llvm-functions]
|
|
- pipe: PromoteCSVs
|
|
arguments: [llvm-functions]
|
|
- pipe: PureLLVMPassesPipe
|
|
arguments: [llvm-functions]
|
|
configuration:
|
|
Passes:
|
|
- remove-exceptional-functions
|
|
- strip-dead-debug-info
|
|
- savepoint: enforce-abi
|
|
containers: [llvm-functions]
|
|
artifacts:
|
|
- name: enforce-abi
|
|
container: llvm-functions
|
|
|
|
emit-model-header:
|
|
tasks:
|
|
- pipe: ModelToHeader
|
|
arguments: [model-header]
|
|
- savepoint: model-header
|
|
containers: [model-header]
|
|
artifacts:
|
|
- name: emit-model-header
|
|
container: model-header
|
|
|
|
emit-type-definition:
|
|
tasks:
|
|
- pipe: GenerateModelTypeDefinition
|
|
arguments: [model-types]
|
|
- savepoint: model-types
|
|
containers: [model-types]
|
|
artifacts:
|
|
- name: emit-type-definitions
|
|
container: model-types
|
|
|
|
hexdump:
|
|
from: isolate
|
|
tasks:
|
|
- pipe: HexDump
|
|
arguments:
|
|
- binaries-container
|
|
- llvm-functions
|
|
- cfg-map
|
|
- hexdump
|
|
- savepoint: hexdump
|
|
containers: [hexdump]
|
|
artifacts:
|
|
- name: hexdump
|
|
container: hexdump
|
|
|
|
process-assembly:
|
|
from: collect-cfg
|
|
tasks:
|
|
- pipe: ProcessAssembly
|
|
arguments: [binaries-container, cfg-map, assembly-internal]
|
|
|
|
disassemble:
|
|
from: process-assembly
|
|
tasks:
|
|
- pipe: YieldAssembly
|
|
arguments: [assembly-internal, assembly]
|
|
- savepoint: disassemble
|
|
containers: [assembly]
|
|
artifacts:
|
|
- name: disassemble
|
|
container: assembly
|
|
|
|
recompile:
|
|
from: lift
|
|
tasks:
|
|
- pipe: LinkSupport
|
|
arguments: [llvm-root]
|
|
- pipe: PureLLVMPassesRootPipe
|
|
arguments: [llvm-root]
|
|
configuration:
|
|
Passes: [drop-opaque-return-address]
|
|
- pipe: CompileRootModule
|
|
arguments: [llvm-root, object-file]
|
|
- pipe: LinkForTranslation
|
|
arguments: [binaries-container, object-file, translated]
|
|
- savepoint: recompile
|
|
containers: [translated]
|
|
artifacts:
|
|
- name: recompile
|
|
container: translated
|
|
|
|
recompile-isolated:
|
|
from: isolate
|
|
tasks:
|
|
- pipe: InvokeIsolatedFunctions
|
|
arguments: [llvm-root, llvm-functions, llvm-root-with-functions]
|
|
- pipe: LinkSupport
|
|
arguments: [llvm-root-with-functions]
|
|
- pipe: PureLLVMPassesRootPipe
|
|
arguments: [llvm-root-with-functions]
|
|
configuration:
|
|
Passes: [drop-opaque-return-address]
|
|
- pipe: CompileRootModule
|
|
arguments: [llvm-root-with-functions, object-file]
|
|
- pipe: LinkForTranslation
|
|
arguments: [binaries-container, object-file, translated]
|
|
- savepoint: recompile-isolated
|
|
containers: [translated]
|
|
artifacts:
|
|
- name: recompile-isolated
|
|
container: translated
|