| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
| |
Add FRefNode, making and defining a forward ref. Forward refs promote out of scopes instead of being an undefined error.
Add location data to all errors, because introducing more "delayed errors"- forward references are not errors if they get eventually defined. Touches many Nodes.
Fix FunNode idom/idepth.
|
| |
|
|
|
|
|
|
|
| |
Pretty-print functions.
GCM deals with functions.
Tighten linker API.
CallEnd asserts harder proper graph.
Eval2 makes (non recursive) function calls
Peeps infer sharper function return sigs.
|
| |
|
|
|
|
|
|
|
| |
Parse "arg--2" as "arg - -2" and not "arg-- 2".
Use ParserException instead of RuntimeException.
Add a Field w/out final test.
Allow Float NaN to hash/compare
Bug cast didn't check type when GVN
Better handling of dead return/exit paths
|
| |
|
|
|
| |
...with and without peeps. Float moves out of the TypeNil set.
Eval2 picks up the FLT compares.
|
| |
|
|
|
|
|
| |
Demand CFG cleanup, even if peeps are off; cleans up some tests & a lot of fuzzer bugs related to trying to find infinite loops in dead code.
Logical subclass for better error reporting on &,|,^,>>,<<,>>>
More precise error reporting on multi returns and trinaries
Fuzzer uses new Eval2
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|