Rollup merge of #61675 - fintelia:riscv-frame-pointer, r=nagisa
Include frame pointer for bare metal RISC-V targets This changes the default setting to enable the use of the frame pointer register when targeting RISC-V. On that architecture there is a dedicated frame pointer register which LLVM would otherwise never use so there is no increase in register pressure. Further, since these are bare metal targets, getting backtraces without the frame pointer is considerably more difficult (you can't just ask the OS to load the ELF executable and parse DWARF symbols). It is true that this setting can also be changed with the `-C force-frame-pointers` flag but that won't impact the compilation of the standard library, meaning that backtraces from, say, a panic handler would be useless.
This commit is contained in:
commit
0d8d08d067
@ -25,6 +25,7 @@ pub fn target() -> TargetResult {
|
||||
relocation_model: "static".to_string(),
|
||||
emit_debug_gdb_scripts: false,
|
||||
abi_blacklist: super::riscv_base::abi_blacklist(),
|
||||
eliminate_frame_pointer: false,
|
||||
.. Default::default()
|
||||
},
|
||||
})
|
||||
|
@ -26,6 +26,7 @@ pub fn target() -> TargetResult {
|
||||
relocation_model: "static".to_string(),
|
||||
emit_debug_gdb_scripts: false,
|
||||
abi_blacklist: super::riscv_base::abi_blacklist(),
|
||||
eliminate_frame_pointer: false,
|
||||
.. Default::default()
|
||||
},
|
||||
})
|
||||
|
@ -25,6 +25,7 @@ pub fn target() -> TargetResult {
|
||||
relocation_model: "static".to_string(),
|
||||
emit_debug_gdb_scripts: false,
|
||||
abi_blacklist: super::riscv_base::abi_blacklist(),
|
||||
eliminate_frame_pointer: false,
|
||||
.. Default::default()
|
||||
},
|
||||
})
|
||||
|
@ -25,6 +25,7 @@ pub fn target() -> TargetResult {
|
||||
relocation_model: "static".to_string(),
|
||||
emit_debug_gdb_scripts: false,
|
||||
abi_blacklist: super::riscv_base::abi_blacklist(),
|
||||
eliminate_frame_pointer: false,
|
||||
.. Default::default()
|
||||
},
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user