parent
0aa8d03202
commit
66fd1ebfae
3 changed files with 9 additions and 2 deletions
|
@ -182,6 +182,8 @@ pub fn target_machine_factory(sess: &Session, find_features: bool)
|
||||||
let is_pie_binary = !find_features && is_pie_binary(sess);
|
let is_pie_binary = !find_features && is_pie_binary(sess);
|
||||||
let trap_unreachable = sess.target.target.options.trap_unreachable;
|
let trap_unreachable = sess.target.target.options.trap_unreachable;
|
||||||
|
|
||||||
|
let asm_comments = sess.asm_comments();
|
||||||
|
|
||||||
Arc::new(move || {
|
Arc::new(move || {
|
||||||
let tm = unsafe {
|
let tm = unsafe {
|
||||||
llvm::LLVMRustCreateTargetMachine(
|
llvm::LLVMRustCreateTargetMachine(
|
||||||
|
@ -195,6 +197,7 @@ pub fn target_machine_factory(sess: &Session, find_features: bool)
|
||||||
fdata_sections,
|
fdata_sections,
|
||||||
trap_unreachable,
|
trap_unreachable,
|
||||||
singlethread,
|
singlethread,
|
||||||
|
asm_comments,
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1455,7 +1455,8 @@ extern "C" {
|
||||||
FunctionSections: bool,
|
FunctionSections: bool,
|
||||||
DataSections: bool,
|
DataSections: bool,
|
||||||
TrapUnreachable: bool,
|
TrapUnreachable: bool,
|
||||||
Singlethread: bool)
|
Singlethread: bool,
|
||||||
|
AsmComments: bool)
|
||||||
-> Option<&'static mut TargetMachine>;
|
-> Option<&'static mut TargetMachine>;
|
||||||
pub fn LLVMRustDisposeTargetMachine(T: &'static mut TargetMachine);
|
pub fn LLVMRustDisposeTargetMachine(T: &'static mut TargetMachine);
|
||||||
pub fn LLVMRustAddAnalysisPasses(T: &'a TargetMachine, PM: &PassManager<'a>, M: &'a Module);
|
pub fn LLVMRustAddAnalysisPasses(T: &'a TargetMachine, PM: &PassManager<'a>, M: &'a Module);
|
||||||
|
|
|
@ -366,7 +366,8 @@ extern "C" LLVMTargetMachineRef LLVMRustCreateTargetMachine(
|
||||||
bool PositionIndependentExecutable, bool FunctionSections,
|
bool PositionIndependentExecutable, bool FunctionSections,
|
||||||
bool DataSections,
|
bool DataSections,
|
||||||
bool TrapUnreachable,
|
bool TrapUnreachable,
|
||||||
bool Singlethread) {
|
bool Singlethread,
|
||||||
|
bool AsmComments) {
|
||||||
|
|
||||||
auto OptLevel = fromRust(RustOptLevel);
|
auto OptLevel = fromRust(RustOptLevel);
|
||||||
auto RM = fromRust(RustReloc);
|
auto RM = fromRust(RustReloc);
|
||||||
|
@ -393,6 +394,8 @@ extern "C" LLVMTargetMachineRef LLVMRustCreateTargetMachine(
|
||||||
}
|
}
|
||||||
Options.DataSections = DataSections;
|
Options.DataSections = DataSections;
|
||||||
Options.FunctionSections = FunctionSections;
|
Options.FunctionSections = FunctionSections;
|
||||||
|
Options.MCOptions.AsmVerbose = AsmComments;
|
||||||
|
Options.MCOptions.PreserveAsmComments = AsmComments;
|
||||||
|
|
||||||
if (TrapUnreachable) {
|
if (TrapUnreachable) {
|
||||||
// Tell LLVM to codegen `unreachable` into an explicit trap instruction.
|
// Tell LLVM to codegen `unreachable` into an explicit trap instruction.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue