aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.cpp
AgeCommit message (Collapse)Author
2019-08-05async functions have error return traces where appropriateAndrew Kelley
however the traces are not merged on `await` or async function calls yet. When an async function has an error set or error union as its return type, it has a `StackTrace` before the args in the frame, so that it is accessible from `anyframe->T` awaiters. However when it does not have an errorable return type, but it does call or await an errorable, it has a stack trace just before the locals. This way when doing an `@asyncCall` on an async function pointer, it can populate the args (which are after the `StackTrace`) because it knows the offset of the args based only on the return type. This sort of matches normal functions, where a stack trace pointer could be supplied by a parameter, or it could be supplied by the stack of the function, depending on whether the function itself is errorable.
2019-08-05delete IrInstructionMarkErrRetTracePtrAndrew Kelley
this IR instruction is no longer needed
2019-08-05support async functions with inferred error setsAndrew Kelley
2019-08-04refactor logic for determining if there is a frame pointerAndrew Kelley
2019-08-04simpler, less memory intensive suspend/resume implementationAndrew Kelley
2019-08-04move state from ZigFn to CodeGen to save memoryAndrew Kelley
2019-08-04suspension points inside branching control flowAndrew Kelley
2019-08-04initial work torwards std lib support for uefiNick Erdmann
2019-08-03implement `@asyncCall` which supports async function pointersAndrew Kelley
2019-08-03Merge remote-tracking branch 'origin/master' into llvm9Andrew Kelley
2019-08-03add runtime safety for resuming an awaiting functionAndrew Kelley
2019-08-02implement async functions returning structsAndrew Kelley
2019-08-02Merge remote-tracking branch 'origin/master' into rewrite-coroutinesAndrew Kelley
2019-08-02Merge branch 'master' into rewrite-coroutinesAndrew Kelley
2019-08-02fix cmpxchg with discarded resultAndrew Kelley
2019-08-02implement async await and returnAndrew Kelley
2019-08-01fix calling an inferred async functionAndrew Kelley
2019-08-01reimplement async with function splitting instead of switchAndrew Kelley
2019-07-29improve support for anyframe and anyframe->TAndrew Kelley
* add implicit cast from `*@Frame(func)` to `anyframe->T` or `anyframe`. * add implicit cast from `anyframe->T` to `anyframe`. * `resume` works on `anyframe->T` and `anyframe` types.
2019-07-26add the `anyframe` and `anyframe->T` typesAndrew Kelley
2019-07-26async functions return void, no more GetSize resume blockAndrew Kelley
2019-07-25`@frameSize` works via PrefixDataAndrew Kelley
2019-07-25implement `@frameSize`Andrew Kelley
2019-07-25implement `@frame` and `@Frame`Andrew Kelley
2019-07-25calling an inferred async functionAndrew Kelley
2019-07-24align src for IrInstructionArrayToVectorMichael Dusan
closes #2942
2019-07-24implement local variables in async functionsAndrew Kelley
2019-07-23inferring async from async callsAndrew Kelley
2019-07-22fix multiple coroutines existing clobbering each otherAndrew Kelley
2019-07-22disable segfault handler when panickingAndrew Kelley
this prevents a segfault in stack trace printing to activate the segfault handler.
2019-07-22disable segfault handler when panickingAndrew Kelley
this prevents a segfault in stack trace printing to activate the segfault handler.
2019-07-22fix wrong calling convention on async resumeAndrew Kelley
2019-07-21implement async function parametersAndrew Kelley
2019-07-21implement coroutine resumeAndrew Kelley
2019-07-21simple async function passing testAndrew Kelley
2019-07-21returning from async fn adds bad resume safetyAndrew Kelley
2019-07-21fix not jumping to entryAndrew Kelley
2019-07-21simple async function call workingAndrew Kelley
2019-07-20always give the type to byval attributeAndrew Kelley
2019-07-19remove coroutines implementation and promise typeAndrew Kelley
2019-07-18riscv workarounds for llvm not having good asm integrationAndrew Kelley
2019-07-18riscv musl: only add the +a featureAndrew Kelley
2019-07-18improvements to riscv supportAndrew Kelley
2019-07-16libc headers before C language headers, and disable libunwind on arm32Andrew Kelley
2019-07-16update bundled musl source to 1.1.23Andrew Kelley
2019-07-16update musl headers to musl v1.1.23Andrew Kelley
2019-07-15fix result location alignment in ir_render_callAndrew Kelley
2019-07-12mingw libc: solve the segfault having to do with destructorsAndrew Kelley
* fixed --verbose-cc printing an extra "zig" before the rest of the command line * windows-gnu targets use libfoo.a, foo.o extensions to match mingw conventions.
2019-07-11add -Wno-pragma-pack when targeting windows-gnuAndrew Kelley
windows.h has files such as pshpack1.h which do #pragma packing, triggering a clang warning. So for this target, this warning is disabled. this commit also improves the error message printed when no libc can be used, printing the "zig triple" rather than the "llvm triple".
2019-07-10mingw: building and linking mingw32.libAndrew Kelley