Skip to content

Commit 8b6e4ea

Browse files
committed
update to LLVM 21.1.0
1 parent 91ef66a commit 8b6e4ea

3 files changed

Lines changed: 22 additions & 17 deletions

File tree

.github/workflows/blang.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ jobs:
1111
- name: Install dependencies
1212
run: brew install flex bison llvm
1313

14-
- name: Test LLVM Version
15-
run: brew list --versions llvm
16-
1714
- name: Build
1815
run: cmake . && make
1916

src/binary.cpp

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,21 +66,26 @@ extern "C" void initialize_llvm() {
6666
}
6767

6868
extern "C" void export_asm() {
69-
std::basic_string<char> targetTriple = llvm::sys::getDefaultTargetTriple();
70-
TheModule->setTargetTriple(targetTriple);
69+
// Construct a Triple from the default target triple string
70+
llvm::Triple triple(llvm::sys::getDefaultTargetTriple());
7171

72-
std::string error;
73-
const llvm::Target* target = llvm::TargetRegistry::lookupTarget(targetTriple, error);
72+
// Set the module's target triple (takes llvm::Triple now)
73+
TheModule->setTargetTriple(triple);
7474

75+
// Look up the target with the Triple
76+
std::string error;
77+
auto target = llvm::TargetRegistry::lookupTarget(triple, error);
7578
if (!target) {
7679
llvm::errs() << "Failed to lookup target: " << error << "\n";
7780
return;
7881
}
7982

83+
// Create the TargetMachine using the Triple (string overload is deprecated)
8084
llvm::TargetOptions opt;
8185
auto RM = std::optional<llvm::Reloc::Model>();
82-
llvm::TargetMachine* targetMachine = target->createTargetMachine(targetTriple, "generic", "", opt, RM);
86+
auto targetMachine = target->createTargetMachine(triple, "generic", "", opt, RM);
8387

88+
// Update the module data layout
8489
TheModule->setDataLayout(targetMachine->createDataLayout());
8590

8691
// Prepare output file
@@ -122,21 +127,26 @@ extern "C" void export_ir() {
122127
}
123128

124129
extern "C" void generate_binary() {
125-
std::basic_string<char> targetTriple = llvm::sys::getDefaultTargetTriple();
126-
TheModule->setTargetTriple(targetTriple);
130+
// Construct a Triple from the default target triple string
131+
llvm::Triple triple(llvm::sys::getDefaultTargetTriple());
127132

128-
std::string error;
129-
const llvm::Target* target = llvm::TargetRegistry::lookupTarget(targetTriple, error);
133+
// Set the module's target triple (takes llvm::Triple now)
134+
TheModule->setTargetTriple(triple);
130135

136+
// Look up the target with the Triple
137+
std::string error;
138+
auto target = llvm::TargetRegistry::lookupTarget(triple, error);
131139
if (!target) {
132140
llvm::errs() << "Failed to lookup target: " << error << "\n";
133141
return;
134142
}
135143

144+
// Create the TargetMachine using the Triple (string overload is deprecated)
136145
llvm::TargetOptions opt;
137146
auto RM = std::optional<llvm::Reloc::Model>();
138-
llvm::TargetMachine* targetMachine = target->createTargetMachine(targetTriple, "generic", "", opt, RM);
147+
auto targetMachine = target->createTargetMachine(triple, "generic", "", opt, RM);
139148

149+
// Update the module data layout
140150
TheModule->setDataLayout(targetMachine->createDataLayout());
141151

142152
// Prepare output file

src/llvm_ir.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -326,10 +326,8 @@ static void add_function(ASTNode* node) {
326326
add_statement(node->function.statements); // Begin adding statements to module.
327327

328328
// If no return statement is made, then return undefined information.
329-
if (!functionDoesReturn) {
330-
llvm::Value* undefined_value = llvm::UndefValue::get(Builder->getInt64Ty());
331-
Builder->CreateRet(undefined_value);
332-
}
329+
if (!functionDoesReturn)
330+
Builder->CreateRet(llvm::UndefValue::get(Builder->getInt64Ty()));
333331
}
334332

335333
static void add_global_variable(ASTNode* node) {

0 commit comments

Comments
 (0)