| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
More compiler driver cleanup: Stop only has Return inputs, never an expr. Drop extra lexical scope. Linker table moves to CodeGen.
Replace evaluator with a simpler design; I was unable to get the current design to work with the other changes.
Updates to old eval; proper idoms; forced type checks; extensions for Fun, Return, Call, CallEnd.
Accessor find next control to execute. Accessor for deciding when its ok to optimize a Function/Return, Call/CallEnd, Stop, ScopeMin (merge)
Add local scheduling pass.
IRPrinter uses SB instead of StringBuilder
Spelling SubF comment
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Top level makes a "main" function and calls it. Opto() pass inlines main into top-level and removes the function call. If peeps are off, the function call remains; this breaks many tests.
Add a FunNode function header; Return is its end. Return no long used at the top level; only a single return per-function, merging all returns (breaks many tests).
Add a Call & CallEnd nodes.
Fix many tests to pass again.
Fix a bunch of minor bugs.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
Insert a TypePtr/TypeNil around TypeMemPtr and TypeFunPtr in the lattice; allows the parsing of "null" to mean either a TMP or TFP null.
Cleanup Type null checks and several prints.
Drop Type.lub, Type.makeInit.
Add a Parser NIL & ZERO.
Clean up parser errors, track line numbers for future parser errors.
|
| | |
|
| | |
|
| |
|
|
| |
fix bug double-render
|
| | |
|
| |
|
|
|
|
|
| |
viewer highlights parsed text;
larger input box
removes some double-display
handles mouse over-run
|
| |
|
|
|
|
|
|
|
|
| |
Handle memory edges. Color-coded edges & nodes to match lattice.
Add SB vs StringBuilder. JSViewer needs SB to keep my sanity.
Catch successful peeps and `show` them.
Drop unused LLVM format, so I don't need to support Yet Another Printer.
SimpleWebSocket handles longer packets; more robust close.
Bug fix st/new fold.
Bug fix Phi pull-down op losing precision.
|
| |
|
|
|
| |
Larger programs, better layouts.
Missing e.g. types, & program text & the inter peeps phase
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Remove old fixLoops, walkInfinite.
|
| | |
|
| |
|
|
| |
Restructure parsing declarations from assignments; allow assignments almost anywhere as a normal expression.
|
| | |
|
| | |
|
| |
|
|
| |
`i -- i` now errors instead of (sometimes) parsing as `i - -i`
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Add a least-upper-bound to set Phis to their respective Top while preserving final fields.
Requires a ReadOnly node to "cast-away-writable".
Series of isFinal/makeRO in all Types.
Changes tests to match r/w intent.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Region does not print id, making all test cases much more stable (and slightly weaker).
NotNode gets more precise compute
|
| |
|
|
|
|
|
|
| |
Fields & locals with an initializer are immutable by default; those without are mutable. Make mutable with `!`. Fields are always mutable in a constructor.
Add a trinary `pred ? then : else` syntax.
SubNode retains as much precision as AddNode.
Sharpen some asserts and error cases.
Limit Load node cloning if the ptr is not obvious.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Fix eval auto-string result. Fix tests hacked because of this.
Turn on BrainFuck in ch15,16,17, also disabled because of this. Use new features in BrainFuck.
Fix bug not lifting forward refs; add a toString to Vars.
Fix some missing addDeps.
Remove large complex not-productive peep.
Upcast after "while" tests. Improves a bunch of tests.
Remove dead getBlockStart.
|
| | |
|