paul@141 | 1 | Optimisation Prerequisites and Effect
|
paul@141 | 2 | ------------ ------------------------
|
paul@141 | 3 |
|
paul@141 | 4 | constant_storage value instruction references a constant;
|
paul@142 | 5 | (elimination) storage instruction references a constant;
|
paul@142 | 6 | remove both instructions (currently a single
|
paul@142 | 7 | merged instruction)
|
paul@141 | 8 |
|
paul@141 | 9 | known_target value instruction references a constant;
|
paul@142 | 10 | (guidance) target and context are provided (no instructions removed)
|
paul@141 | 11 |
|
paul@141 | 12 | self_access value instruction references "self" in a method;
|
paul@142 | 13 | (guidance) specified attribute name always has the same position;
|
paul@141 | 14 | appropriate instruction generated
|
paul@141 | 15 |
|
paul@141 | 16 | temp_storage value instruction is a simple input operation;
|
paul@142 | 17 | (elimination) value instruction is the last instruction;
|
paul@142 | 18 | (guidance) remove the value instruction, provide the value
|
paul@141 | 19 | instruction in place of a temporary storage
|
paul@141 | 20 | reference
|
paul@141 | 21 |
|
paul@141 | 22 | load_operations value instruction is a simple input operation;
|
paul@142 | 23 | (merge) value instruction is the last instruction;
|
paul@141 | 24 | current instruction uses simple input;
|
paul@141 | 25 | remove the value instruction, make the value
|
paul@141 | 26 | instruction the input to the current instruction
|
paul@141 | 27 |
|
paul@141 | 28 | no_operations input to the current instruction loads from the
|
paul@142 | 29 | (elimination) destination of the current instruction;
|
paul@141 | 30 | omit the current instruction
|
paul@141 | 31 |
|
paul@141 | 32 | unused_results value instruction is a simple input operation;
|
paul@142 | 33 | (elimination) value instruction is the final instruction of a
|
paul@141 | 34 | discarded expression;
|
paul@141 | 35 | remove the value instruction
|