tinygo/compiler
Ayke van Laethem eaa54bc7e3 compiler,runtime: use LLVM intrinsics for memcpy/memmove
This replaces the custom runtime.memcpy and runtime.memmove functions
with calls to LLVM builtins that should hopefully allow LLVM to better
optimize such calls. They will be lowered to regular libc memcpy/memmove
when they can't be optimized away.

When testing this change with some smoke tests, I found that many smoke
tests resulted in slightly larger binary sizes with this commit applied.
I looked into it and it appears that machine.sendUSBPacket was not
inlined before while it is with this commit applied. Additionally, when
I compared all driver smoke tests with -opt=1 I saw that many were
reduced slightly in binary size and none increased in size.
2020-03-27 21:01:59 +01:00
..
ircheck compiler: move IR checker to separate package 2020-03-21 15:45:25 +01:00
llvmutil compiler/llvmutil: move constant pointer packs into constant globals 2020-02-24 23:27:04 +01:00
asserts.go compiler, transform: remove runtime.isnil hack 2020-03-27 07:38:16 +01:00
calls.go compiler: add dereferenceable_or_null attribute where possible 2020-03-27 07:38:16 +01:00
channel.go compiler: refactor creating of channel operations 2020-03-25 20:17:46 +01:00
compiler.go compiler,runtime: use LLVM intrinsics for memcpy/memmove 2020-03-27 21:01:59 +01:00
defer.go compiler: refactor defer operations 2020-03-25 20:17:46 +01:00
errors.go compiler: rename Compiler.getValue -> builder.getValue 2020-03-25 20:17:46 +01:00
func.go compiler: add dereferenceable_or_null attribute where possible 2020-03-27 07:38:16 +01:00
gc.go compiler: remove leftover code after refactor 2020-03-25 20:17:46 +01:00
goroutine.go compiler: refactor starting new goroutines 2020-03-25 20:17:46 +01:00
inlineasm.go compiler: refactor function calling 2020-03-25 20:17:46 +01:00
interface.go compiler: add dereferenceable_or_null attribute where possible 2020-03-27 07:38:16 +01:00
interrupt.go compiler: refactor function calling 2020-03-25 20:17:46 +01:00
intrinsics.go compiler,runtime: use LLVM intrinsics for memcpy/memmove 2020-03-27 21:01:59 +01:00
llvm.go compiler: remove leftover code after refactor 2020-03-25 20:17:46 +01:00
map.go compiler: refactor map operations to use the builder object 2020-03-25 20:17:46 +01:00
sizes.go compiler: don't crash when encountering types.Invalid 2019-12-30 13:40:37 +01:00
symbol.go compiler: refactor public interface 2020-03-25 20:17:46 +01:00
syscall.go compiler: refactor function calling 2020-03-25 20:17:46 +01:00
volatile.go compiler: do not perform nil checking when indexing slices 2020-03-27 07:38:16 +01:00