diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-06-18 12:50:06 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-06-18 12:50:06 +0100 |
| commit | 7f2f3173cdc7c05c72f71a84e527bfa931b7cd73 (patch) | |
| tree | 0f0f6279d95ade42d1c2c9af467c9288b25de32e /src/main/java | |
| parent | a88e68d099d6c83430b76d581215150c711ffef9 (diff) | |
Extract globalNameNamespaceInit()
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java | 6 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerNamespaces.java | 10 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java index fb0c32ed..498dcadf 100644 --- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java +++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java @@ -23,7 +23,7 @@ public class LlvmCompiler { // TODO: remove duplication of definition/declaration context = context.addTopLevelEntity(new LlvmFunctionDeclaration( - "shed__namespaceInit__" + String.join("_", main.parts()), + LlvmCompilerNamespaces.globalNameNamespaceInit(main), LlvmCompilerTypes.VALUE_TYPE, List.of() )); @@ -40,7 +40,7 @@ public class LlvmCompiler { mainContext = mainContext.addInstruction(new LlvmCall( namespace, LlvmCompilerTypes.VALUE_TYPE, - new LlvmVariableGlobal("shed__namespaceInit__" + String.join("_", main.parts())), + new LlvmVariableGlobal(LlvmCompilerNamespaces.globalNameNamespaceInit(main)), List.of() )); @@ -90,7 +90,7 @@ public class LlvmCompiler { )); var basicBlocks = context.basicBlocks(); var namespaceInitFunction = new LlvmFunctionDefinition( - "shed__namespaceInit__" + String.join("_", namespaceName.parts()), + LlvmCompilerNamespaces.globalNameNamespaceInit(namespaceName), LlvmCompilerTypes.VALUE_TYPE, List.of(), basicBlocks diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerNamespaces.java b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerNamespaces.java index ceb263f5..db60372b 100644 --- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerNamespaces.java +++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompilerNamespaces.java @@ -44,7 +44,15 @@ public class LlvmCompilerNamespaces { } private static String globalNameNamespaceValue(NamespaceName namespaceName) { - return "shed__namespace__" + String.join("_", namespaceName.parts()); + return "shed__namespace__" + namespaceNameToLlvmIdentifier(namespaceName); + } + + public static String globalNameNamespaceInit(NamespaceName namespaceName) { + return "shed__namespaceInit__" + namespaceNameToLlvmIdentifier(namespaceName); + } + + private static String namespaceNameToLlvmIdentifier(NamespaceName namespaceName) { + return String.join("_", namespaceName.parts()); } public static LlvmGlobalDefinition defineGlobal( |
