aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorMeghan <hello@nektro.net>2022-07-24 01:56:33 -0700
committerGitHub <noreply@github.com>2022-07-24 11:56:33 +0300
commitdea437edfb124b8a4cf4f2e09330ef4282991cc9 (patch)
treecff1a5c5f9b89c4f8f94def8006f7d07f9757dbc /src/codegen
parent903bed931dddc8b3f7ad1fa87e57eca13375dd32 (diff)
downloadzig-dea437edfb124b8a4cf4f2e09330ef4282991cc9.tar.gz
zig-dea437edfb124b8a4cf4f2e09330ef4282991cc9.zip
stage2: implement `noinline fn`
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/llvm.zig6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index de132132b0..64485d48bd 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -699,6 +699,12 @@ pub const Object = struct {
DeclGen.removeFnAttr(llvm_func, "cold");
}
+ if (func.is_noinline) {
+ dg.addFnAttr(llvm_func, "noinline");
+ } else {
+ DeclGen.removeFnAttr(llvm_func, "noinline");
+ }
+
// Remove all the basic blocks of a function in order to start over, generating
// LLVM IR from an empty function body.
while (llvm_func.getFirstBasicBlock()) |bb| {