| 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
|
| | |
|
| |
|
|
| |
Several incorrect tests meant not late-scheduling many nodes, which instead lived with the sub-optimal early schedule
|
| | |
|
| |
|
|
|
| |
TODO for GraphViz
Remove dead code
|
| | |
|
| |
|
|
|
|
|
| |
`null` is a constant; "if(null)" will collapse.
Phi w/mem keep mem even when dead.
Load handles dead mem.
static class Var
|
| |
|
|
|
|
| |
Mostly minor progress.
Lost? shl/shr/sar high-type fixes.
Turn off some printing crept back in
|
| |
|
|
|
|
|
| |
ignore temps made during constructing
and/or/xor honor TypeInteger.TOP; TypeInteger.nonZero works with zero
NotNode keeps precision.
Scope lazy phis of narrow ints auto-widen
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Replace ArrayList with Ary, because no "setLength" in ArrayList and "size" is private so I cannot even override.
Replace Utils.find with Ary.find.
Split Scope into Scope and ScopeMin (bad name). Memory edges go in ScopeMin, and it is pointed at from Scope.mem(). This lets us lazily add memory edges without interleaving them through other non-memory aliases, which was breaking all sorts of parser invariants. ScopeMin aliases are added lazily.
Scope & ScopeMin now use an array-of-Var structs instead of a struct-of-arrays.
|
| |
|
|
|
|
|
|
| |
Missing arrays yet.
Allow constructor syntax in 2 parts; the type description and at the New.
must-init fields (final and not-null) have to be initialized in at least one of the two places;
finals must be initialized exactly once.
Any code is allowed in the constructors.
|
| |
|
|
|
|
| |
`int x,y;` works
`int !x = 3;` works
Structs defs are statements, require a trailing `;`
|
| |
|