AgeCommit message (Collapse)Author
2013-02-09Remove nearly-useless function.peephole-optOri Bernstein
There's no reason to put the BB transforms into another function.
2013-02-09Rename functions.Ori Bernstein
2013-02-09Add the start of a peephole optimizer.Ori Bernstein
It only does one optimization right now -- the elimination of dumb jumps. Eventually it will do more.
2013-02-09Split out printing basic blocks in writeasm()Ori Bernstein
It's easier to call the function from the debugger this way.
2013-02-09Teach myrbuild about linker scripts.Ori Bernstein
Useful for building a kernel.
2013-02-09Remove code used only for debugging.Ori Bernstein
2013-02-06Merge in the nop move deletion.Ori Bernstein
2013-02-06Live in and out needs to be calculated in reverse.Ori Bernstein
2013-02-06Merge branch 'callee-save' of git+ssh:// into ↵Ori Bernstein
2013-02-06Rename 'locs' to 'stkoff', which is a better name.Ori Bernstein
2013-02-06Comment our data structures a bit better.Ori Bernstein
2013-02-06Only put stack temps on the stack.Ori Bernstein
Locals should go in registers.
2013-02-06Delete nop movs.Ori Bernstein
The register allocator coalesces nodes, which leaves us with reg->reg moves that do nothing. This cl deletes them.
2013-02-06Print success when all tests pass.Ori Bernstein
2013-02-06Document decdegree()'s subtlety.Ori Bernstein
It's tricky, the way that we use worklists as sets, but only here.
2013-02-06Fix the ok heuristic again.Ori Bernstein
Set operations. The node can already be in the freeze or simplify worklist. Tricky, tricky.
2013-02-06Change the 'ok()' heuristic. It seems to be wrong.Ori Bernstein
2013-02-05Merge remote-tracking branch 'origin/master' into callee-saveOri Bernstein
2013-02-05Merge branch 'master' into callee-saveOri Bernstein
2013-02-05Disabble buggered tests.Ori Bernstein
2013-02-05Silence more debug dumps.Ori Bernstein
2013-02-05Remove nop moves.Ori Bernstein
2013-02-05I think this is the right 'ok()' heuristic.Ori Bernstein
2013-02-03Hack to remove aliasing registers from mov targetsOri Bernstein
We were effectively excluding registers that we shouldn't have been. Oops.
2013-02-02Implement the other half of DecrementDegree.Ori Bernstein
2013-02-02xOri Bernstein
2013-02-02Fix moverelated.Ori Bernstein
If we didn't pass in the instruction list pointer, we wouldn't have updated the count. This was incorrect for checking if we were move related, because would have returned '0' for the number of move related nodes.
2013-02-01Revert "Broke some tests, but now we do a better job of callee-save."Ori Bernstein
This reverts commit b8545d80c9f3e18e2357be1a44b69dc9ad914458. Breaking tests in the main branch is bad.
2013-02-01Only add registers from the actual initial set.Ori Bernstein
While using all registers as the initial set is correct, it leads to a lot of spurious zero-degree nodes in the graphs and worklists. This makes things hard to debug, as well as slower.
2013-01-31More debugging, still not working.Ori Bernstein
2013-01-30Add in invariant checksOri Bernstein
2013-01-30Work on moving to callee save convention.Ori Bernstein
This breaks things badly; We have a register allocator bug.
2013-01-29Broke some tests, but now we do a better job of callee-save.Ori Bernstein
2013-01-29Stub in callee save registers.Ori Bernstein
Don't enable them since they're broken, but stub them in.
2013-01-29Implement spilling in the RA.Ori Bernstein
A first step to improving our generated code.
2013-01-29Add dummy 'clean' target.Ori Bernstein
We don't clean, but we don't want to error when entering.
2013-01-27Fix offsets when moving block in ldel(). Thought I already did this.Ori Bernstein
2013-01-25Fix ldel.Ori Bernstein
We want to use the list itself to index, not junk mem.
2013-01-25Rename registers for consistency.Ori Bernstein
The name of the numbered registers are %rNUM, not %NUM.
2013-01-25Rebuild libstd if 6m is rebuilt.Ori Bernstein
Debugging test issues because we forgot to rebuild libstd sucks.
2013-01-25Merge remote-tracking branch 'origin/nicer-ra'Ori Bernstein
2013-01-25Improve errors with malformed use file name.Ori Bernstein
2013-01-25Add more fold forms.Ori Bernstein
2013-01-23Add loaded decls to decl list.Ori Bernstein
This fixes a segfault building libstd.
2013-01-22Rename things in the platform configuration header.Ori Bernstein
2013-01-22Fix uninitialized variable warnings under Clang.Ori Bernstein
2013-01-21Add a license.Ori Bernstein
MIT style, because why not.
2013-01-20Clarify text on goto.Ori Bernstein
2013-01-20Clean generated file 'gram.h'.Ori Bernstein
2013-01-20Install all the things with the right permissions.Ori Bernstein