paul@141 | 1 | Optimisation Prerequisites and Effect
|
paul@141 | 2 | ------------ ------------------------
|
paul@141 | 3 |
|
paul@141 | 4 | constant_storage value instruction references a constant;
|
paul@156 | 5 | (guidance) storage instruction references a constant;
|
paul@156 | 6 | | indicate whether both instructions satisfy the
|
paul@156 | 7 | | preconditions and should be removed (although
|
paul@156 | 8 | | this currently involves just a single merged
|
paul@156 | 9 | | instruction)
|
paul@141 | 10 |
|
paul@155 | 11 | constant_accessor value instruction references a constant;
|
paul@156 | 12 | (guidance) | target name provided (for use in producing an
|
paul@156 | 13 | | address access instruction)
|
paul@155 | 14 |
|
paul@141 | 15 | known_target value instruction references a constant;
|
paul@156 | 16 | (guidance) | target and context are provided (no instructions
|
paul@156 | 17 | | are removed)
|
paul@141 | 18 |
|
paul@141 | 19 | self_access value instruction references "self" in a method;
|
paul@155 | 20 | (guidance) specified attribute name always has the same
|
paul@155 | 21 | position;
|
paul@156 | 22 | | indicate whether an appropriate instruction can
|
paul@156 | 23 | | be generated for the access
|
paul@141 | 24 |
|
paul@141 | 25 | temp_storage value instruction is a simple input operation;
|
paul@142 | 26 | (elimination) value instruction is the last instruction;
|
paul@156 | 27 | (guidance) | remove the value instruction, provide the value
|
paul@156 | 28 | | instruction in place of a temporary storage
|
paul@156 | 29 | | reference
|
paul@141 | 30 |
|
paul@141 | 31 | load_operations value instruction is a simple input operation;
|
paul@142 | 32 | (merge) value instruction is the last instruction;
|
paul@141 | 33 | current instruction uses simple input;
|
paul@156 | 34 | | remove the value instruction, make the value
|
paul@156 | 35 | | instruction the input to the current instruction
|
paul@141 | 36 |
|
paul@141 | 37 | no_operations input to the current instruction loads from the
|
paul@156 | 38 | (guidance) destination of the current instruction;
|
paul@156 | 39 | | indicate that the current instruction should be
|
paul@156 | 40 | | omitted
|
paul@141 | 41 |
|
paul@141 | 42 | unused_results value instruction is a simple input operation;
|
paul@142 | 43 | (elimination) value instruction is the final instruction of a
|
paul@141 | 44 | discarded expression;
|
paul@156 | 45 | | remove the value instruction
|
paul@253 | 46 |
|
paul@253 | 47 | unused_objects attribute is defined using a name which is not
|
paul@253 | 48 | (inspection) used in an active region of the program or is
|
paul@253 | 49 | defined within a class which is not used by
|
paul@253 | 50 | the program, object is unambiguously
|
paul@253 | 51 | referenced by such attributes
|
paul@253 | 52 | | remove such attributes and objects
|