mirror of
https://github.com/ziglang/zig.git
synced 2025-12-24 15:13:08 +00:00
llvm: Also apply the nobuiltin attribute for the no_builtin module option.
From `zig build-exe --help`: -fno-builtin Disable implicit builtin knowledge of functions It seems entirely reasonable and even expected that this option should imply both no-builtins on functions (which disables transformation of recognized code patterns to libcalls) and nobuiltin on call sites (which disables transformation of libcalls to intrinsics). We now match Clang's behavior for -fno-builtin. In both cases, we're painting with a fairly broad brush by applying this to an entire module, but it's better than nothing. #21833 proposes a more fine-grained way to apply nobuiltin.
This commit is contained in:
parent
e88501a090
commit
bdca2d0f48
@ -5576,6 +5576,10 @@ pub const FuncGen = struct {
|
||||
var attributes: Builder.FunctionAttributes.Wip = .{};
|
||||
defer attributes.deinit(&o.builder);
|
||||
|
||||
if (self.ng.ownerModule().no_builtin) {
|
||||
try attributes.addFnAttr(.nobuiltin, &o.builder);
|
||||
}
|
||||
|
||||
switch (modifier) {
|
||||
.auto, .never_tail, .always_tail => {},
|
||||
.never_inline => try attributes.addFnAttr(.@"noinline", &o.builder),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user