llvm: update ffi bindings for split dwarf
This commit modifies the FFI bindings to LLVM required for Split DWARF support in rustc. In particular: - `addPassesToEmitFile`'s wrapper, `LLVMRustWriteOutputFile` now takes a `DwoPath` `const char*`. When disabled, `nullptr` should be provided which will preserve existing behaviour. When enabled, the path to the `.dwo` file should be provided. - `createCompileUnit`'s wrapper, `LLVMRustDIBuilderCreateCompileUnit` now has two additional arguments, for the `DWOId` and to enable `SplitDebugInlining`. `DWOId` should always be zero. - `createTargetMachine`'s wrapper, `LLVMRustCreateTargetMachine` has an additional argument which should be provided the path to the `.dwo` when enabled. Signed-off-by: David Wood <david@davidtw.co>
This commit is contained in:
parent
ddbc6176de
commit
341aa97adb
5 changed files with 41 additions and 7 deletions
|
@ -1830,6 +1830,8 @@ extern "C" {
|
|||
SplitName: *const c_char,
|
||||
SplitNameLen: size_t,
|
||||
kind: DebugEmissionKind,
|
||||
DWOId: u64,
|
||||
SplitDebugInlining: bool,
|
||||
) -> &'a DIDescriptor;
|
||||
|
||||
pub fn LLVMRustDIBuilderCreateFile(
|
||||
|
@ -2151,6 +2153,7 @@ extern "C" {
|
|||
EmitStackSizeSection: bool,
|
||||
RelaxELFRelocations: bool,
|
||||
UseInitArray: bool,
|
||||
SplitDwarfFile: *const c_char,
|
||||
) -> Option<&'static mut TargetMachine>;
|
||||
pub fn LLVMRustDisposeTargetMachine(T: &'static mut TargetMachine);
|
||||
pub fn LLVMRustAddBuilderLibraryInfo(
|
||||
|
@ -2179,6 +2182,7 @@ extern "C" {
|
|||
PM: &PassManager<'a>,
|
||||
M: &'a Module,
|
||||
Output: *const c_char,
|
||||
DwoOutput: *const c_char,
|
||||
FileType: FileType,
|
||||
) -> LLVMRustResult;
|
||||
pub fn LLVMRustOptimizeWithNewPassManager(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue