Skip to content

Commit a80f2ea

Browse files
authored
Merge pull request #821 from glu-lang/fix/zig-016-irdec-aliases
Feature: update to LLVM 22
2 parents e74cda9 + 2a6b9cf commit a80f2ea

19 files changed

Lines changed: 155 additions & 178 deletions

File tree

.github/workflows/linux-asserts.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
strategy:
1717
fail-fast: false
1818
matrix:
19-
llvm-version: [20]
19+
llvm-version: [22]
2020
env:
2121
LLVM_VERSION: ${{ matrix.llvm-version }}
2222
steps:
@@ -40,6 +40,9 @@ jobs:
4040
if: steps.changes.outputs.code == 'true' || github.event_name == 'workflow_dispatch'
4141
run: |
4242
sudo apt-get update
43+
wget https://apt.llvm.org/llvm.sh
44+
chmod +x llvm.sh
45+
sudo ./llvm.sh ${LLVM_VERSION}
4346
sudo apt-get install -y libfl-dev ccache flex bison ninja-build llvm-${LLVM_VERSION}-tools lldb-${LLVM_VERSION} clang-${LLVM_VERSION}
4447
echo "/usr/lib/llvm-${LLVM_VERSION}/bin" >> "$GITHUB_PATH"
4548
echo '/usr/lib/ccache' >> "$GITHUB_PATH"

.github/workflows/linux_smoke-tests.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
strategy:
1717
fail-fast: false
1818
matrix:
19-
llvm-version: [19]
19+
llvm-version: [22]
2020
env:
2121
LLVM_VERSION: ${{ matrix.llvm-version }}
2222
LLVM_BIN: /usr/lib/llvm-${{ matrix.llvm-version }}/bin
@@ -42,6 +42,9 @@ jobs:
4242
- name: Install dependencies
4343
if: steps.changes.outputs.code == 'true'
4444
run: |
45+
wget https://apt.llvm.org/llvm.sh
46+
chmod +x llvm.sh
47+
sudo ./llvm.sh ${LLVM_VERSION}
4548
sudo apt-get install -y llvm-${LLVM_VERSION} llvm-${LLVM_VERSION}-dev clang-${LLVM_VERSION} libclang-${LLVM_VERSION}-dev libfl-dev llvm-${LLVM_VERSION}-tools lldb-${LLVM_VERSION}
4649
sudo apt-get install -y ccache flex bison
4750
if command -v lldb-${LLVM_VERSION} >/dev/null 2>&1; then

.github/workflows/macOS_smoke-tests.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
strategy:
1717
fail-fast: false
1818
matrix:
19-
llvm-version: [19, 20, 21]
19+
llvm-version: [22]
2020
env:
2121
LLVM_VERSION: ${{ matrix.llvm-version }}
2222
steps:
@@ -43,9 +43,8 @@ jobs:
4343
brew install llvm@${LLVM_VERSION}
4444
brew link --force llvm@${LLVM_VERSION}
4545
pip install lit
46-
brew install bison flex ccache zig@0.15
46+
brew install bison flex ccache zig
4747
brew link --force bison flex ccache
48-
echo "$(brew --prefix zig@0.15)/bin" >> "$GITHUB_PATH"
4948
echo "$(brew --prefix flex)/bin" >> "$GITHUB_PATH"
5049
echo "$(brew --prefix bison)/bin" >> "$GITHUB_PATH"
5150
echo "$(brew --prefix ccache)/libexec" >> "$GITHUB_PATH"

.github/workflows/sonarQube.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,19 @@ jobs:
99
runs-on: ubuntu-latest
1010
env:
1111
BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed
12-
LLVM_VERSION: 20
13-
LLVM_DIR: /usr/lib/llvm-20/lib/cmake/llvm
14-
LLVM_BIN: /usr/lib/llvm-20/bin
12+
LLVM_VERSION: 22
13+
LLVM_DIR: /usr/lib/llvm-22/lib/cmake/llvm
14+
LLVM_BIN: /usr/lib/llvm-22/bin
1515
steps:
1616
- uses: actions/checkout@v4
1717
with:
1818
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
1919
- name: Install dependencies
2020
run: |
2121
sudo apt-get update
22+
wget https://apt.llvm.org/llvm.sh
23+
chmod +x llvm.sh
24+
sudo ./llvm.sh ${LLVM_VERSION}
2225
sudo apt-get install -y \
2326
llvm-${LLVM_VERSION} \
2427
llvm-${LLVM_VERSION}-dev \

CMakeLists.txt

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,16 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
1313

1414
project(Glu CXX C)
1515

16-
set(GLU_LLVM_VERSION "21" CACHE STRING "LLVM major version to use (supported: 19, 20, 21, 22)")
17-
18-
if(GLU_LLVM_VERSION STREQUAL "19")
19-
set(GLU_LLVM_VERSION_REQUIRED "19.1")
20-
set(GLU_LLVM_GIT_TAG "llvmorg-19.1.7")
21-
elseif(GLU_LLVM_VERSION STREQUAL "20")
22-
set(GLU_LLVM_VERSION_REQUIRED "20.1")
23-
set(GLU_LLVM_GIT_TAG "llvmorg-20.1.8")
24-
elseif(GLU_LLVM_VERSION STREQUAL "21")
25-
set(GLU_LLVM_VERSION_REQUIRED "21.1")
26-
set(GLU_LLVM_GIT_TAG "llvmorg-21.1.6")
16+
set(GLU_LLVM_VERSION "22" CACHE STRING "LLVM major version to use (supported: 22)")
17+
18+
if(GLU_LLVM_VERSION STREQUAL "22")
19+
set(GLU_LLVM_VERSION_REQUIRED "22.1")
20+
set(GLU_LLVM_GIT_TAG "llvmorg-22.1.0")
2721
else()
28-
message(FATAL_ERROR "Unsupported LLVM version '${GLU_LLVM_VERSION}'. Supported versions: 19, 20, 21, 22")
22+
message(FATAL_ERROR
23+
"Unsupported LLVM version '${GLU_LLVM_VERSION}'. Supported versions: 22. "
24+
"If you need LLVM 19, 20, or 21 support, please use an older Glu release."
25+
)
2926
endif()
3027

3128
message(STATUS "Configuring Glu with LLVM ${GLU_LLVM_VERSION} (find_package >= ${GLU_LLVM_VERSION_REQUIRED})")

include/AST/ASTNodeMacros.hpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
#ifndef GLU_AST_ASTNODE_MACROS_HPP
22
#define GLU_AST_ASTNODE_MACROS_HPP
33

4-
#include "Basic/LLVMCompat.hpp"
5-
64
#define GLU_AST_GEN_CHILD(Self, Child, _name, Name) \
75
Child _name; \
86
\
@@ -41,19 +39,18 @@ private: \
4139
} \
4240
llvm::MutableArrayRef<Child> get##Name##Mutable() \
4341
{ \
44-
return { GLU_GET_SINGLE_TRAILING_OBJECTS(Child), num }; \
42+
return { this->getTrailingObjects(), num }; \
4543
} \
4644
\
4745
public: \
4846
llvm::ArrayRef<Child> get##Name() const \
4947
{ \
50-
return { GLU_GET_SINGLE_TRAILING_OBJECTS(Child), num }; \
48+
return { this->getTrailingObjects(), num }; \
5149
} \
5250
void set##Name(llvm::ArrayRef<Child> children) \
5351
{ \
5452
std::copy( \
55-
children.begin(), children.end(), \
56-
GLU_GET_SINGLE_TRAILING_OBJECTS(Child) \
53+
children.begin(), children.end(), this->getTrailingObjects() \
5754
); \
5855
for (Child &child : get##Name##Mutable()) { \
5956
child->setParent(this); \
@@ -65,8 +62,7 @@ private: \
6562
{ \
6663
num = children.size(); \
6764
std::uninitialized_copy( \
68-
children.begin(), children.end(), \
69-
GLU_GET_SINGLE_TRAILING_OBJECTS(Child) \
65+
children.begin(), children.end(), this->getTrailingObjects() \
7066
); \
7167
for (Child &child : get##Name##Mutable()) { \
7268
child->setParent(this); \

include/AST/Decl/EnumDecl.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class EnumDecl final : public TypeDecl,
112112

113113
llvm::MutableArrayRef<FieldDecl *> getMutableFields()
114114
{
115-
return { GLU_GET_SINGLE_TRAILING_OBJECTS(FieldDecl *), _numFields };
115+
return { this->getTrailingObjects(), _numFields };
116116
}
117117

118118
/// @brief Getter for the index of a specific field by name.

include/AST/Decl/StructDecl.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ class StructDecl final
119119

120120
llvm::MutableArrayRef<FieldDecl *> getMutableFields()
121121
{
122-
return { GLU_GET_SINGLE_TRAILING_OBJECTS(FieldDecl *), _numFields };
122+
return { this->getTrailingObjects(), _numFields };
123123
}
124124

125125
/// @brief Getter for the index of a specific field by name.

include/AST/Expr/RefExpr.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ class RefExpr final : public ExprBase,
3636

3737
llvm::StringRef *getTrailingIdentifierParts()
3838
{
39-
return GLU_GET_SINGLE_TRAILING_OBJECTS(llvm::StringRef);
39+
return this->getTrailingObjects();
4040
}
4141

4242
llvm::StringRef const *getTrailingIdentifierParts() const
4343
{
44-
return GLU_GET_SINGLE_TRAILING_OBJECTS(llvm::StringRef);
44+
return this->getTrailingObjects();
4545
}
4646

4747
RefExpr(

include/AST/Types/FunctionTy.hpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
#include "TypeBase.hpp"
55

6-
#include "Basic/LLVMCompat.hpp"
76
#include <llvm/Support/Allocator.h>
87
#include <llvm/Support/TrailingObjects.h>
98

@@ -34,14 +33,11 @@ class FunctionTy final : public TypeBase,
3433
return _numParams;
3534
}
3635

37-
TypeBase **getTrailingParams()
38-
{
39-
return GLU_GET_SINGLE_TRAILING_OBJECTS(TypeBase *);
40-
}
36+
TypeBase **getTrailingParams() { return this->getTrailingObjects(); }
4137

4238
TypeBase * const *getTrailingParams() const
4339
{
44-
return GLU_GET_SINGLE_TRAILING_OBJECTS(TypeBase *);
40+
return this->getTrailingObjects();
4541
}
4642

4743
FunctionTy(

0 commit comments

Comments
 (0)