1227825Stheraven(* 2227825Stheraven Copyright David C. J. Matthews 2018-19 3227825Stheraven 4227825Stheraven This library is free software; you can redistribute it and/or 5227825Stheraven modify it under the terms of the GNU Lesser General Public 6227825Stheraven License version 2.1 as published by the Free Software Foundation. 7227825Stheraven 8227825Stheraven This library is distributed in the hope that it will be useful, 9227825Stheraven but WITHOUT ANY WARRANTY; without even the implied warranty of 10227825Stheraven MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11227825Stheraven Lesser General Public License for more details. 12227825Stheraven 13227825Stheraven You should have received a copy of the GNU Lesser General Public 14227825Stheraven License along with this library; if not, write to the Free Software 15227825Stheraven Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 16227825Stheraven*) 17227825Stheraven 18227825Stheravensignature X86ICODEOPTSIG = 19227825Stheravensig 20227825Stheraven type extendedBasicBlock and basicBlock and regProperty 21227825Stheraven 22227825Stheraven datatype optimise = Changed of basicBlock vector * regProperty vector | Unchanged 23227825Stheraven 24227825Stheraven val optimiseICode: 25227825Stheraven { code: extendedBasicBlock vector, pregProps: regProperty vector, ccCount: int, 26227825Stheraven debugSwitches: Universal.universal list } -> optimise 27227825Stheraven 28227825Stheraven structure Sharing: 29227825Stheraven sig 30 type extendedBasicBlock = extendedBasicBlock 31 and basicBlock = basicBlock 32 and regProperty = regProperty 33 and optimise = optimise 34 end 35end; 36