summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-03-02Add foreach.nlHEADmasterSøren Sandmann Pedersen1-0/+50
2014-02-02switch.c: Note about performanceSøren Sandmann Pedersen1-0/+3
2014-02-02Remove some debug spewSøren Sandmann Pedersen1-22/+0
2014-02-02TODOSøren Sandmann Pedersen4-124/+133
2014-02-02Save and restore the stack across callsSøren Sandmann Pedersen1-9/+16
2014-02-02Spaghetti stackSøren Sandmann Pedersen1-80/+74
2014-02-02TODO, formattingSøren Sandmann Pedersen2-18/+30
2014-01-31todoSøren Sandmann Pedersen1-4/+53
2014-01-31TODO: expressions with gotos in themSøren Sandmann Pedersen1-0/+60
2012-06-18popbug3Søren Sandmann Pedersen1-0/+21
2012-06-18Expression with goto in themSøren Sandmann Pedersen2-0/+13
2012-06-17Remove debug spewSøren Sandmann Pedersen1-1/+1
2012-06-17Allow null labelsSøren Sandmann Pedersen1-0/+3
2012-06-17RenamingSøren Sandmann Pedersen1-5/+5
2012-06-17Call the binary oortSøren Sandmann Pedersen1-2/+2
2012-06-17Rename to OortSøren Sandmann Pedersen22-22/+22
2012-06-17Remove debug spewSøren Sandmann Pedersen1-59/+29
2012-06-17Make the optimization passes non-recursive.Søren Sandmann Pedersen4-380/+419
Very long functions could cause stack overflow due to peephole() and remove_nops() being recursive.
2012-06-16Optimize away literal nodes followed by to_stringSøren Sandmann Pedersen3-4/+18
2012-06-16Fix bug with switch statements and gotoSøren Sandmann Pedersen3-8/+26
Previously, the condition expression in a switch statement would be generated once, and then each case would do "dup; compare". After the switch, the condition expression would be popped. The problem with this is that if you jump out of the switch, the expression would be left on the stack. So instead generate a temporary variable to hold the condition expression, then load that variable for each case.
2012-06-16Add popbug2.nlSøren Sandmann Pedersen1-0/+11
2012-06-16Allow non-void function references to be assigned to void function variablesSøren Sandmann Pedersen2-4/+5
2012-06-16Check return type, not function typeSøren Sandmann Pedersen1-6/+6
2012-06-16Remove redundant loadsSøren Sandmann Pedersen6-14/+62
Do breadth first of the entire program when marking variables used/unused Don't optimize away unused function parameters
2012-06-16Optimize away stores to variables that are never readSøren Sandmann Pedersen1-9/+76
2012-06-16Only allocate space for variables that are actually usedSøren Sandmann Pedersen2-1/+26
2012-06-16formattingSøren Sandmann Pedersen1-2/+8
2012-06-16TODOSøren Sandmann Pedersen1-7/+6
2012-06-15Make void functions return a dummy value.Søren Sandmann Pedersen1-4/+18
This means void and non-void functions are called the same way, which means non-void functions can be cast to void functions.
2012-06-15Get rid of warningsSøren Sandmann Pedersen1-3/+2
2012-06-15Some formatting fixesSøren Sandmann Pedersen2-31/+15
2012-06-15Fix bug in graph_boolean_expression()Søren Sandmann Pedersen2-3/+11
When the expression is known to be compile-time constant, its value is stored in expr->common.constant_value, but the code was treating the expression as if it were a boolean literal.
2012-06-15Do debug spew from within compile().Søren Sandmann Pedersen3-12/+23
Dump the goto graph after optimization if debug_spew is turned on.
2012-06-15Move levels to its own passSøren Sandmann Pedersen5-20/+79
The optimizer needs to know the embeddeng level of the various definitions. Previously, this was computed in the offsets pass, but if the optimizer removes unused variables, the offsets could change. The levels must be computed before optimizations, but offsets must be computers. So split levels to its own pass that runs before the optimizer.
2012-06-14tabsSøren Sandmann Pedersen1-1/+1
2012-06-14Print labelsSøren Sandmann Pedersen3-3/+17
2012-06-14Run offset pass before optimizerSøren Sandmann Pedersen3-5/+6
Then only squash dyn_label + dyn_goto if the label definition is at the same level as the label expression.
2012-06-14todoSøren Sandmann Pedersen1-0/+3
2012-06-14Remove debug spewSøren Sandmann Pedersen2-6/+0
2012-06-14Make debug spew and optimize optionsSøren Sandmann Pedersen1-15/+61
2012-06-14formattingSøren Sandmann Pedersen1-21/+21
2012-06-14Make defs.nl compileSøren Sandmann Pedersen1-7/+10
2012-06-14Prettier printingSøren Sandmann Pedersen3-25/+23
2012-06-14Some refactoringSøren Sandmann Pedersen4-344/+365
2012-06-14Remove debug spewSøren Sandmann Pedersen1-2/+0
2012-06-14Also move graph dumping thereSøren Sandmann Pedersen3-137/+141
2012-06-14Move debug spew to its own fileSøren Sandmann Pedersen4-503/+510
2012-06-14Add support for multiple comma separated expressionsSøren Sandmann Pedersen8-16/+32
2012-06-14Redo print statements to generate a sequence of to_string()sSøren Sandmann Pedersen4-11/+15
followed by a print node containing information about how many strings are on the stack.
2012-06-14Add to_string nodeSøren Sandmann Pedersen4-1/+36