Optimizer - So, UD chains are broken

Disabled broken code and added some notes, which are probably broken as
well but fuck it.
This commit is contained in:
Emmanuel BENOîT 2017-12-10 09:59:55 +01:00
parent fac8de1fde
commit 35d3098917

View file

@ -634,6 +634,30 @@ void T_OptData::buildUseDefineChains(
BUDCAddEntries_( udPerInstr , i , false , r.defines ); BUDCAddEntries_( udPerInstr , i , false , r.defines );
} }
/*
* So this whole heap of code below is wrong. It wouldn't work correctly
* in all cases (although it does with the current test code, but that's
* irrelevant).
*
* A block B from the CFG has instr{B}+1 points (1 point before each
* instruction, and 1 point at the end of the block).
*
* Uses should be assigned to the point preceding the instruction; defs
* and kills should be assigned to the point that follows it, before
* any uses (it may be simpler to have 2 points / instruction?)
*
* defs from I0 defs from I1
* \/ \/
* P00 -> I0 -> P01 -> P10 -> I1 -> I11 -> PBE
* /\ /\ /\
* uses from I0 uses from I1 defs/kills from block end
*
* Entering/exiting functions is a bit of a PITA:
* - call instructions define function arguments;
* - return edges kill locals
*/
#if 0
// Walk the graph from the entry point until all reachable nodes // Walk the graph from the entry point until all reachable nodes
// have been covered and keeping track of active definitions. When // have been covered and keeping track of active definitions. When
// the flow diverges, we need to store the state before the // the flow diverges, we need to store the state before the
@ -785,6 +809,7 @@ void T_OptData::buildUseDefineChains(
// 30 if next block is an end of function, kill locals // 30 if next block is an end of function, kill locals
} }
#endif
} }