1(*
2    Copyright (c) 2017 David C.J. Matthews
3
4    This library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License version 2.1 as published by the Free Software Foundation.
7    
8    This library is distributed in the hope that it will be useful,
9    but WITHOUT ANY WARRANTY; without even the implied warranty of
10    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11    Lesser General Public License for more details.
12    
13    You should have received a copy of the GNU Lesser General Public
14    License along with this library; if not, write to the Free Software
15    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
16*)
17
18signature X86GETCONFLICTSETSIG =
19sig
20    type x86ICode and reg and preg and controlFlow and extendedBasicBlock    
21    type intSet
22    
23    type conflictState =
24    {
25        conflicts: intSet, realConflicts: reg list
26    }
27
28    val getConflictStates: extendedBasicBlock vector * int -> conflictState vector
29
30    structure Sharing:
31    sig
32        type x86ICode = x86ICode
33        and reg = reg
34        and preg = preg
35        and intSet = intSet
36        and extendedBasicBlock = extendedBasicBlock
37    end;
38end;
39