tinygo/compiler
Ayke van Laethem bf9dab36f7 build: normalize target triples to match Clang
This commit changes a target triple like "armv6m-none-eabi" to
"armv6m-unknown-unknow-eabi". The reason is that while the former is
correctly parsed in Clang (due to normalization), it wasn't parsed
correctly in LLVM meaning that the environment wasn't set to EABI.

This change normalizes all target triples and uses the EABI environment
(-eabi in the triple) for Cortex-M targets.

This change also drops the `--target=` flag in the target JSON files,
the flag is now added implicitly in `(*compileopts.Config).CFlags()`.
This removes some duplication in target JSON files.

Unfortunately, this change also increases code size for Cortex-M
targets. It looks like LLVM now emits calls like __aeabi_memmove instead
of memmove, which pull in slightly more code (they basically just call
the regular C functions) and the calls themself don't seem to be as
efficient as they could be. Perhaps this is a LLVM bug that will be
fixed in the future, as this is a very common occurrence.
2021-09-28 18:44:11 +02:00
..
ircheck compiler: move IR checker to separate package 2020-03-21 15:45:25 +01:00
llvmutil compiler: move settings to a separate Config struct 2021-01-29 14:49:58 +01:00
testdata build: normalize target triples to match Clang 2021-09-28 18:44:11 +02:00
alias.go all: add support for Go 1.17 2021-08-30 09:18:58 +02:00
asserts.go all: fix staticcheck warnings 2021-09-27 15:47:12 +02:00
atomic.go compiler: work around an ARM backend bug in LLVM 2021-02-03 14:49:41 +01:00
calls.go all: fix staticcheck warnings 2021-09-27 15:47:12 +02:00
channel.go compiler: avoid zero-sized alloca in channel operations 2021-09-09 11:24:52 +02:00
compiler.go all: fix staticcheck warnings 2021-09-27 15:47:12 +02:00
compiler_test.go compiler: avoid zero-sized alloca in channel operations 2021-09-09 11:24:52 +02:00
defer.go builder, compiler: compile and cache packages in parallel 2021-03-21 11:51:35 +01:00
errors.go all: fix staticcheck warnings 2021-09-27 15:47:12 +02:00
func.go compiler: decouple func lowering from interface type codes 2021-04-12 12:07:42 +02:00
gc.go compiler: track the result of string concatenation 2020-04-02 14:04:25 +02:00
goroutine.go compiler: skip context parameter when starting regular goroutine 2021-05-26 20:21:08 +02:00
inlineasm.go all: fix staticcheck warnings 2021-09-27 15:47:12 +02:00
interface.go compiler: refactor method names 2021-06-17 12:17:32 +02:00
interrupt.go Support chained interrupt handlers 2021-05-25 20:44:49 +02:00
intrinsics.go compiler: move LLVM math builtin support into the compiler 2021-08-10 20:08:27 +02:00
llvm.go all: fix staticcheck warnings 2021-09-27 15:47:12 +02:00
map.go compiler: refactor map operations to use the builder object 2020-03-25 20:17:46 +01:00
sizes.go reflect: implement Sizeof and Alignof for func values 2021-03-29 01:04:11 +02:00
symbol.go compiler: add function and global section pragmas 2021-06-24 15:00:30 +02:00
syscall.go compiler: implement syscall.rawSyscallNoError in inline assembly 2021-06-25 16:14:47 +02:00
volatile.go compiler: do not perform nil checking when indexing slices 2020-03-27 07:38:16 +01:00