Have constant folding be more flexible.
- Have Evaluate methods take as argument(s) and return value instances of HConstant (instead of built-in 32- or 64-bit integer values), to let the evaluated instruction choose the type of the statically evaluated node; for instance, art::HEqual::Evaluate shall return a HIntConstant node (as implementation of a Boolean constant) whatever the type of its inputs (a pair of HIntConstant or a pair of HLongConstant). - Split the evaluation job from the operation logic: the former is addressed by Evaluate methods, while the latter is done by a generic Compute method. - Adress valid BinOp(int, long) and BinOp(long, int) cases. - Add a constructor to art::HIntConstant to build an integer constant from a `bool` value. Change-Id: If84b6fe8406bb94ddb1aa8b02e36628dff526db3
Loading
Please sign in to comment