summary refs log tree commit diff stats
path: root/compiler/liftdestructors.nim
Commit message (Collapse)AuthorAgeFilesLines
* IC: next steps (#16729)Andreas Rumpf2021-01-231-36/+56
| | | | | | | | | | | * IC: dead code elimination pass * preparations for a different codegen strategy * added documentation to the newly written code * IC: backend code * IC: backend adjustments * optimized the compiler a bit * IC: yet another massive refactoring * fixes regressions * cleanups
* Fix 16722 (#16730)cooldome2021-01-151-1/+1
| | | | | | | * fix #16722 * fix spacing * spacing
* big steps torwards an efficient, simple IC implementation (#16543)Andreas Rumpf2021-01-021-10/+10
| | | | | | | | | | | | | | | | | | | * reworked ID handling * the packed AST now has its own ID mechanism * basic serialization code works * extract rodfiles to its own module * rodfiles: store and compare configs * rodfiles: store dependencies * store config at the end * precise dependency tracking * dependency tracking for rodfiles * completed loading of PSym, PType, etc * removed dead code * bugfix: do not realloc seqs when taking addr into an element * make IC opt-in for now * makes tcompilerapi green again * final cleanups Co-authored-by: Andy Davidoff <github@andy.disruptek.com>
* ORC: prepare for another patent-pending optimization (#15996)Andreas Rumpf2020-11-181-11/+44
| | | | | | | | | | | | | | | | | * ORC: prepare for another patent-pending optimization * bugfix * '=copy' for refs can take a cyclic parameter for more ORC optimizations * ORC: exploit the common 'it = it.next' pattern * can't hurt to check for nil * use an algorithm that is not obviously broken * restore the test case * final cleanups for --gc:orc
* fix #15910 (#15984)cooldome2020-11-161-4/+12
| | | | | | | * fix #15910 * produce op of op is nil * Trigger build
* fixes #15753 [backport:1.4] (#15971)Andreas Rumpf2020-11-151-19/+76
|
* ARC now capable of custom extra alignment. Ref, closure and seq support. ↵cooldome2020-10-281-2/+6
| | | | (#15697)
* explicit ID generation for easier IC (#15559)Andreas Rumpf2020-10-251-46/+53
| | | | | | | | | | | | | | | | | * refactoring: idents don't need inheritance * refactoring: adding an IdGenerator (part 1) * refactoring: adding an IdGenerator (part 2) * refactoring: adding an IdGenerator (part 3) * refactoring: adding an IdGenerator (part 4) * refactoring: adding an IdGenerator (part 5) * refactoring: adding an IdGenerator (part 5) * IdGenerator must be a ref type; hello world works again * make bootstrapping work again * progress: add back the 'exactReplica' ideas * added back the missing exactReplica hacks * make tcompilerapi work again * make important packages green * attempt to fix the build for 32 bit machines (probably need a better solution here)
* ORC: critical bugfix for the cycle analyser, introduce -d:nimStressOrc for ↵Andreas Rumpf2020-10-141-1/+1
| | | | easier stress testing (#15572)
* allow old styled RTTI for arc/orc (#15331)Andreas Rumpf2020-09-161-2/+2
|
* fixes #15076 (#15329)Andreas Rumpf2020-09-151-0/+1
|
* fixes #15122 (#15301)Andreas Rumpf2020-09-111-2/+15
|
* Big compiler Cleanup (#14777)Clyybber2020-08-281-5/+0
|
* fixes #15076 (#15095)Andreas Rumpf2020-07-271-0/+2
|
* ARC: optimize the code better when --panics:off (#15031)Andreas Rumpf2020-07-211-18/+24
|
* Move `wasMoved` out of `=destroy`Clyybber2020-07-101-9/+1
|
* remove tyOpt, mOpt (#14636)Timothee Cour2020-06-121-1/+2
| | | | | * remove tyOpt, mOpt * fixup
* fixes #14495 [backport:1.2] (#14496)Andreas Rumpf2020-05-291-4/+4
|
* fix one motr dicriminator bugcooldome2020-05-121-2/+7
|
* fix testcooldome2020-05-121-3/+5
|
* fix #14312cooldome2020-05-121-6/+9
|
* fix #14294 (#14301)cooldome2020-05-111-1/+6
| | | | | | | * fix #14294 * fix orc as well Co-authored-by: cooldome <ariabushenko@bk.ru>
* fix #14236 (#14250)cooldome2020-05-071-3/+3
| | | Co-authored-by: cooldome <ariabushenko@bk.ru>
* fixes #14244 (#14248)cooldome2020-05-061-6/+6
| | | Co-authored-by: cooldome <ariabushenko@bk.ru>
* fixes a critical =trace generation bug (see test case) (#14140)Andreas Rumpf2020-04-271-1/+5
|
* cycle collector (#14071)Andreas Rumpf2020-04-221-3/+3
| | | | * figured out the wrong cycle trace proc problem * cycle collector/break refactorings and minor improvements
* Implements RFCs #209 (#13995)cooldome2020-04-161-59/+115
| | | | | * add test * add changelod entry Co-authored-by: cooldome <ariabushenko@bk.ru>
* fixes #13810 (#13821)cooldome2020-03-311-1/+1
| | | Co-authored-by: cooldome <ariabushenko@bk.ru>
* cycle breaker (#13593)Andreas Rumpf2020-03-191-4/+3
| | | | * cycle breaking as an alternative to cycle detection
* fixes #13269 (#13344)Andreas Rumpf2020-02-071-3/+6
|
* fixes #13110 (#13197)Andreas Rumpf2020-01-191-1/+0
|
* make sink operator optional (#13068)cooldome2020-01-171-11/+19
| | | | | | | | | | | | | | | | * make sink operator optional * bug fix, add changelog entry * Trigger build * fix one regression * fix test * Trigger build * fix typos
* ARC: misc bugfixes (#13156)Andreas Rumpf2020-01-151-22/+77
| | | | | | | | * fixes #13102 * closes #13149 * ARC: fixes a move optimizer bug (there are more left regarding array and tuple indexing) * proper fix; fixes #12957 * fixes yet another case object '=' code generation problem
* fixes #13119 (#13128)Andreas Rumpf2020-01-141-1/+1
| | | | | * fixes #13119 * fixes a regression
* Sink to MemMove optimization in injectdestructors (#13002)cooldome2020-01-021-7/+0
|
* fixes #12899 (#12921)Andreas Rumpf2019-12-181-8/+12
| | | | | | * fixes #12899 * fixes regression: destroy global variables in reverse declaration order, closureleak test relies on it
* ARC: cycle detector (#12823)Andreas Rumpf2019-12-171-37/+121
| | | | | | | | | | | | | * first implementation of the =trace and =dispose hooks for the cycle collector * a cycle collector for ARC: progress * manual: the .acyclic pragma is a thing once again * gcbench: adaptations for --gc:arc * enable valgrind tests for the strutils tests * testament: better valgrind support * ARC refactoring: growable jumpstacks * ARC cycle detector: non-recursive algorithm * moved and renamed core/ files back to system/ * refactoring: --gc:arc vs --gc:orc since 'orc' is even more experimental and we want to ship --gc:arc soonish
* fixes #12820 (#12828)cooldome2019-12-091-0/+7
|
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-36/+35
| | | | | | | | | | | | | | | | | | * Cleanup compiler code base * Unify add calls * Unify len invocations * Unify range operators * Fix oversight * Remove {.procvar.} pragma * initCandidate -> newCandidate where reasonable * Unify safeLen calls
* [backport] Fix spelling typos (#12755)Brian Wignall2019-11-281-1/+1
|
* ARC: use the new .cursor annotation for 'up' pointersAraq2019-11-131-1/+1
|
* .cursor implementation (#12637)Andreas Rumpf2019-11-121-10/+20
| | | | | | | | | | | * cursors: first implementation * added currently failing test * .cursor works for doubly linked lists * make -d:useMalloc work again * added code to nil out refs in a destructor * it's now called --gc:arc * renderer.nim: render nkBreakState properly * make simple closure iterators work without leaking
* --gc:destructors: bugfixesAraq2019-11-091-6/+6
|
* --gc:destructors improvements (#12626)Andreas Rumpf2019-11-091-12/+17
| | | | | | * do not cache the noDestructors transformation * liftdestructor: improvements * undo bugfix
* --gc:destructors now means Nim uses pure refcounting (#12557)Andreas Rumpf2019-10-301-10/+67
|
* refactoring: use the new strings and seqs when optSeqDestructors is activeAraq2019-10-201-3/+3
|
* refactoring: --newruntime consists of 3 different switchesAraq2019-10-201-3/+3
|
* some gc:destructors progressAndreas Rumpf2019-09-161-1/+1
|
* fixes #12172Araq2019-09-131-1/+1
|
* fixes #12051Araq2019-09-101-1/+9
|