diff options
author | Ayke van Laethem <[email protected]> | 2022-11-27 14:18:22 +0100 |
---|---|---|
committer | Ron Evans <[email protected]> | 2023-09-18 21:58:02 +0200 |
commit | 1d7543e2bfcba3eed51f5340dcaf607d11b0bdeb (patch) | |
tree | 2125653ea6b465f39b05a9d76af9282c255959d2 /compileopts/target.go | |
parent | ff32fbbb4ff266f5f29080479a29d941cad2a57e (diff) | |
download | tinygo-1d7543e2bfcba3eed51f5340dcaf607d11b0bdeb.tar.gz tinygo-1d7543e2bfcba3eed51f5340dcaf607d11b0bdeb.zip |
all: switch to LLVM 16
This commit adds support for LLVM 16 and switches to it by default. That
means three LLVM versions are supported at the same time: LLVM 14, 15,
and 16.
This commit includes work by QuLogic:
* Part of this work was based on a PR by QuLogic:
https://github.com/tinygo-org/tinygo/pull/3649
But I also had parts of this already implemented in an old branch I
already made for LLVM 16.
* QuLogic also provided a CGo fix here, which is also incorporated in
this commit:
https://github.com/tinygo-org/tinygo/pull/3869
The difference with the original PR by QuLogic is that this commit is
more complete:
* It switches to LLVM 16 by default.
* It updates some things to also make it work with a self-built LLVM.
* It fixes the CGo bug in a slightly different way, and also fixes
another one not included in the original PR.
* It does not keep compiler tests passing on older LLVM versions. I
have found this to be quite burdensome and therefore don't generally
do this - the smoke tests should hopefully catch most regressions.
Diffstat (limited to 'compileopts/target.go')
-rw-r--r-- | compileopts/target.go | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/compileopts/target.go b/compileopts/target.go index 003c8aac0..82ee2e3b4 100644 --- a/compileopts/target.go +++ b/compileopts/target.go @@ -281,10 +281,14 @@ func defaultTarget(goos, goarch, triple string) (*TargetSpec, error) { } case "arm64": spec.CPU = "generic" - spec.Features = "+neon" + if goos == "darwin" { + spec.Features = "+neon" + } else { // windows, linux + spec.Features = "+neon,-fmv" + } case "wasm": spec.CPU = "generic" - spec.Features = "+bulk-memory,+nontrapping-fptoint,+sign-ext" + spec.Features = "+bulk-memory,+mutable-globals,+nontrapping-fptoint,+sign-ext" spec.BuildTags = append(spec.BuildTags, "tinygo.wasm") spec.CFlags = append(spec.CFlags, "-mbulk-memory", |