aboutsummaryrefslogtreecommitdiffhomepage
path: root/builder
diff options
context:
space:
mode:
authorAyke van Laethem <[email protected]>2024-05-18 12:55:35 +0200
committerRon Evans <[email protected]>2024-05-24 19:12:26 +0200
commit81ce7fb738142361afba119f1f531cf6ffddc6d1 (patch)
tree68559a44ba49457b5ef9a5f2381fab1eae0276ff /builder
parentc2776dcf78125abb86e3e7b4a110bb0d07386d09 (diff)
downloadtinygo-81ce7fb738142361afba119f1f531cf6ffddc6d1.tar.gz
tinygo-81ce7fb738142361afba119f1f531cf6ffddc6d1.zip
LLVM 18 support
Diffstat (limited to 'builder')
-rw-r--r--builder/build.go2
-rw-r--r--builder/builtins.go12
-rw-r--r--builder/cc1as.cpp15
-rw-r--r--builder/cc1as.h2
-rw-r--r--builder/sizes_test.go6
5 files changed, 18 insertions, 19 deletions
diff --git a/builder/build.go b/builder/build.go
index 5a6683ae6..940439667 100644
--- a/builder/build.go
+++ b/builder/build.go
@@ -773,7 +773,7 @@ func Build(pkgName, outpath, tmpdir string, config *compileopts.Config) (BuildRe
if sizeLevel >= 2 {
// Workaround with roughly the same effect as
// https://reviews.llvm.org/D119342.
- // Can hopefully be removed in LLVM 18.
+ // Can hopefully be removed in LLVM 19.
ldflags = append(ldflags,
"-mllvm", "--rotation-max-header-size=0")
}
diff --git a/builder/builtins.go b/builder/builtins.go
index a1066b671..0dbfc42a0 100644
--- a/builder/builtins.go
+++ b/builder/builtins.go
@@ -8,14 +8,14 @@ import (
"github.com/tinygo-org/tinygo/goenv"
)
-// These are the GENERIC_SOURCES according to CMakeList.txt.
+// These are the GENERIC_SOURCES according to CMakeList.txt except for
+// divmodsi4.c and udivmodsi4.c.
var genericBuiltins = []string{
"absvdi2.c",
"absvsi2.c",
"absvti2.c",
"adddf3.c",
"addsf3.c",
- "addtf3.c",
"addvdi3.c",
"addvsi3.c",
"addvti3.c",
@@ -40,12 +40,12 @@ var genericBuiltins = []string{
"divdf3.c",
"divdi3.c",
"divmoddi4.c",
+ //"divmodsi4.c",
+ "divmodti4.c",
"divsc3.c",
"divsf3.c",
"divsi3.c",
- "divtc3.c",
"divti3.c",
- "divtf3.c",
"extendsfdf2.c",
"extendhfsf2.c",
"ffsdi2.c",
@@ -91,7 +91,6 @@ var genericBuiltins = []string{
"mulsc3.c",
"mulsf3.c",
"multi3.c",
- "multf3.c",
"mulvdi3.c",
"mulvsi3.c",
"mulvti3.c",
@@ -111,13 +110,11 @@ var genericBuiltins = []string{
"popcountti2.c",
"powidf2.c",
"powisf2.c",
- "powitf2.c",
"subdf3.c",
"subsf3.c",
"subvdi3.c",
"subvsi3.c",
"subvti3.c",
- "subtf3.c",
"trampoline_setup.c",
"truncdfhf2.c",
"truncdfsf2.c",
@@ -126,6 +123,7 @@ var genericBuiltins = []string{
"ucmpti2.c",
"udivdi3.c",
"udivmoddi4.c",
+ //"udivmodsi4.c",
"udivmodti4.c",
"udivsi3.c",
"udivti3.c",
diff --git a/builder/cc1as.cpp b/builder/cc1as.cpp
index 9f9e377fa..e489866ec 100644
--- a/builder/cc1as.cpp
+++ b/builder/cc1as.cpp
@@ -82,10 +82,10 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,
// Parse the arguments.
const OptTable &OptTbl = getDriverOptTable();
- const unsigned IncludedFlagsBitmask = options::CC1AsOption;
+ llvm::opt::Visibility VisibilityMask(options::CC1AsOption);
unsigned MissingArgIndex, MissingArgCount;
- InputArgList Args = OptTbl.ParseArgs(Argv, MissingArgIndex, MissingArgCount,
- IncludedFlagsBitmask);
+ InputArgList Args =
+ OptTbl.ParseArgs(Argv, MissingArgIndex, MissingArgCount, VisibilityMask);
// Check for missing argument error.
if (MissingArgCount) {
@@ -98,7 +98,7 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,
for (const Arg *A : Args.filtered(OPT_UNKNOWN)) {
auto ArgString = A->getAsString(Args);
std::string Nearest;
- if (OptTbl.findNearest(ArgString, Nearest, IncludedFlagsBitmask) > 1)
+ if (OptTbl.findNearest(ArgString, Nearest, VisibilityMask) > 1)
Diags.Report(diag::err_drv_unknown_argument) << ArgString;
else
Diags.Report(diag::err_drv_unknown_argument_with_suggestion)
@@ -521,9 +521,10 @@ int cc1as_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {
if (Asm.ShowHelp) {
getDriverOptTable().printHelp(
llvm::outs(), "clang -cc1as [options] file...",
- "Clang Integrated Assembler",
- /*Include=*/driver::options::CC1AsOption, /*Exclude=*/0,
- /*ShowAllAliases=*/false);
+ "Clang Integrated Assembler", /*ShowHidden=*/false,
+ /*ShowAllAliases=*/false,
+ llvm::opt::Visibility(driver::options::CC1AsOption));
+
return 0;
}
diff --git a/builder/cc1as.h b/builder/cc1as.h
index 423a916a3..4b22fc3e8 100644
--- a/builder/cc1as.h
+++ b/builder/cc1as.h
@@ -93,7 +93,7 @@ struct AssemblerInvocation {
EmitDwarfUnwindType EmitDwarfUnwind;
// Whether to emit compact-unwind for non-canonical entries.
- // Note: may be overridden by other constraints.
+ // Note: maybe overriden by other constraints.
unsigned EmitCompactUnwindNonCanonical : 1;
/// The name of the relocation model to use.
diff --git a/builder/sizes_test.go b/builder/sizes_test.go
index 429e3f3e9..9755abe81 100644
--- a/builder/sizes_test.go
+++ b/builder/sizes_test.go
@@ -41,9 +41,9 @@ func TestBinarySize(t *testing.T) {
// This is a small number of very diverse targets that we want to test.
tests := []sizeTest{
// microcontrollers
- {"hifive1b", "examples/echo", 4476, 280, 0, 2252},
- {"microbit", "examples/serial", 2724, 388, 8, 2256},
- {"wioterminal", "examples/pininterrupt", 5996, 1484, 116, 6816},
+ {"hifive1b", "examples/echo", 4484, 280, 0, 2252},
+ {"microbit", "examples/serial", 2732, 388, 8, 2256},
+ {"wioterminal", "examples/pininterrupt", 6016, 1484, 116, 6816},
// TODO: also check wasm. Right now this is difficult, because
// wasm binaries are run through wasm-opt and therefore the