tinygo/compiler
Ayke van Laethem 562ad740da compiler: make runtime.makeGoroutine AVR compatible
Previously it would use a bitcast, which cannot directly be used on AVR
because functions live in a different address space on AVR. To fix this,
use a ptrtoint/inttoptr pair.

This allows testdata/coroutines.go to be compiled, but due to what
appears to be an LLVM bug cannot be optimized and codegen'ed:

    tinygo: /home/ayke/src/github.com/tinygo-org/tinygo/llvm-project/llvm/lib/IR/Constants.cpp:1776: static llvm::Constant *llvm::ConstantExpr::getBitCast(llvm::Constant *, llvm::Type *, bool): Assertion `CastInst::castIsValid(Instruction::BitCast, C, DstTy) && "Invalid constantexpr bitcast!"' failed.

This happens as one of the function passes after the TinyGo passes and
after the module has been verified so most likely it is a bug somewhere
in LLVM.
2019-08-09 21:27:23 +02:00
..
asserts.go compiler: implement full slice expression 2019-08-04 17:51:16 +02:00
calls.go Trivial typo fix 2019-06-20 13:30:38 +02:00
channel.go compiler,runtime: implement non-blocking selects 2019-06-12 18:26:52 +02:00
compiler.go compiler: make runtime.makeGoroutine AVR compatible 2019-08-09 21:27:23 +02:00
defer.go compiler,runtime: implement a portable conservative GC 2019-07-01 16:30:33 +02:00
errors.go all: improve compiler error handling 2019-04-26 08:52:10 +02:00
func-lowering.go compiler: refactor named types to create them lazily 2019-06-08 22:17:09 +02:00
func.go compiler: fix crash with linked lists in interfaces 2019-08-05 14:44:30 +02:00
gc.go all: use baremetal build tag 2019-08-04 17:12:07 +02:00
goroutine-lowering.go compiler: make runtime.makeGoroutine AVR compatible 2019-08-09 21:27:23 +02:00
inlineasm.go all: add HiFive1 rev B board with RISC-V architecture 2019-07-07 14:03:24 +02:00
interface-lowering.go compiler: refactor named types to create them lazily 2019-06-08 22:17:09 +02:00
interface.go reflect: add support for struct types 2019-08-08 15:23:47 +02:00
llvm.go reflect: add support for struct types 2019-08-08 15:23:47 +02:00
map.go compiler: add support for pointers as map keys 2019-06-08 21:48:05 +02:00
optimizer.go compiler,runtime: implement a portable conservative GC 2019-07-01 16:30:33 +02:00
reflect.go reflect: add support for struct types 2019-08-08 15:23:47 +02:00
sizes.go compiler: allow larger-than-int values to be sent across a channel 2019-05-05 16:46:50 +02:00
symbol.go compiler: move global handling from ir to compiler package 2019-06-08 22:17:09 +02:00
syscall.go Add support for linux/386 syscalls. 2019-08-04 18:15:06 +02:00
volatile.go compiler: implement volatile operations as compiler builtins 2019-05-14 12:24:01 +02:00
wordpack.go compiler: track all pointers returned by runtime.alloc 2019-07-03 21:22:12 +02:00