authorgravatar for leecannon@leecannon.xyzLee Cannon <leecannon@leecannon.xyz> 2021-09-30 19:50:18+01:00
committergravatar for leecannon@leecannon.xyzLee Cannon <leecannon@leecannon.xyz> 2021-10-16 21:55:51+01:00
log1e942211901f0c8bc2f857b48dc8254e57a00ef4
tree354bca26c7d01858c94fff89a07063b830abd617
parentb15d6b2a34294bd48bc090f858c1b9527763163a

stage1 codegen


1 files changed, 6 insertions(+), 10 deletions(-)

src/stage1/codegen.cpp+6-10
......@@ -363,10 +363,6 @@ static bool cc_want_sret_attr(CallingConvention cc) {
363363 zig_unreachable();
364364}
365365
366static bool codegen_have_frame_pointer(CodeGen *g) {
367 return g->build_mode == BuildModeDebug;
368}
369
370366static void add_common_fn_attributes(CodeGen *g, LLVMValueRef llvm_fn) {
371367 if (!g->red_zone) {
372368 addLLVMFnAttr(llvm_fn, "noredzone");
......@@ -603,7 +599,7 @@ static LLVMValueRef make_fn_llvm_value(CodeGen *g, ZigFn *fn) {
603599 addLLVMFnAttrInt(llvm_fn, "alignstack", fn->alignstack_value);
604600 }
605601
606 if (codegen_have_frame_pointer(g) && cc != CallingConventionInline) {
602 if (!g->omit_frame_pointer && cc != CallingConventionInline) {
607603 ZigLLVMAddFunctionAttr(llvm_fn, "frame-pointer", "all");
608604 }
609605 if (fn->section_name) {
......@@ -1223,7 +1219,7 @@ static LLVMValueRef get_add_error_return_trace_addr_fn(CodeGen *g) {
12231219 // Error return trace memory is in the stack, which is impossible to be at address 0
12241220 // on any architecture.
12251221 addLLVMArgAttr(fn_val, (unsigned)0, "nonnull");
1226 if (codegen_have_frame_pointer(g)) {
1222 if (!g->omit_frame_pointer) {
12271223 ZigLLVMAddFunctionAttr(fn_val, "frame-pointer", "all");
12281224 }
12291225
......@@ -1299,7 +1295,7 @@ static LLVMValueRef get_return_err_fn(CodeGen *g) {
12991295 LLVMSetLinkage(fn_val, LLVMInternalLinkage);
13001296 ZigLLVMFunctionSetCallingConv(fn_val, get_llvm_cc(g, CallingConventionUnspecified));
13011297 add_common_fn_attributes(g, fn_val);
1302 if (codegen_have_frame_pointer(g)) {
1298 if (!g->omit_frame_pointer) {
13031299 ZigLLVMAddFunctionAttr(fn_val, "frame-pointer", "all");
13041300 }
13051301
......@@ -1381,7 +1377,7 @@ static LLVMValueRef get_safety_crash_err_fn(CodeGen *g) {
13811377 LLVMSetLinkage(fn_val, LLVMInternalLinkage);
13821378 ZigLLVMFunctionSetCallingConv(fn_val, get_llvm_cc(g, CallingConventionUnspecified));
13831379 add_common_fn_attributes(g, fn_val);
1384 if (codegen_have_frame_pointer(g)) {
1380 if (!g->omit_frame_pointer) {
13851381 ZigLLVMAddFunctionAttr(fn_val, "frame-pointer", "all");
13861382 }
13871383 // Not setting alignment here. See the comment above about
......@@ -2389,7 +2385,7 @@ static LLVMValueRef get_merge_err_ret_traces_fn_val(CodeGen *g) {
23892385
23902386 addLLVMArgAttr(fn_val, (unsigned)1, "noalias");
23912387 addLLVMArgAttr(fn_val, (unsigned)1, "readonly");
2392 if (codegen_have_frame_pointer(g)) {
2388 if (!g->omit_frame_pointer) {
23932389 ZigLLVMAddFunctionAttr(fn_val, "frame-pointer", "all");
23942390 }
23952391
......@@ -5444,7 +5440,7 @@ static LLVMValueRef get_enum_tag_name_function(CodeGen *g, ZigType *enum_type) {
54445440 LLVMSetLinkage(fn_val, LLVMInternalLinkage);
54455441 ZigLLVMFunctionSetCallingConv(fn_val, get_llvm_cc(g, CallingConventionUnspecified));
54465442 add_common_fn_attributes(g, fn_val);
5447 if (codegen_have_frame_pointer(g)) {
5443 if (!g->omit_frame_pointer) {
54485444 ZigLLVMAddFunctionAttr(fn_val, "frame-pointer", "all");
54495445 }
54505446