Beispiel #1
0
 public valState(regMask regs = default, ref ptr <use> uses = default, ref ptr <Value> spill = default, int restoreMin = default, int restoreMax = default, bool needReg = default, bool rematerializeable = default)
 {
     this.regs              = regs;
     this.uses              = uses;
     this.spill             = spill;
     this.restoreMin        = restoreMin;
     this.restoreMax        = restoreMax;
     this.needReg           = needReg;
     this.rematerializeable = rematerializeable;
 }
 public edgeState(ref ptr <regAllocState> s = default, ref ptr <Block> p = default, ref ptr <Block> b = default, map <ID, slice <ptr <Value> > > cache = default, slice <ID> cachedVals = default, map <Location, contentRecord> contents = default, slice <dstRecord> destinations = default, slice <dstRecord> extra = default, regMask usedRegs = default, regMask uniqueRegs = default, regMask finalRegs = default, regMask rematerializeableRegs = default)
 {
     this.s                     = s;
     this.p                     = p;
     this.b                     = b;
     this.cache                 = cache;
     this.cachedVals            = cachedVals;
     this.contents              = contents;
     this.destinations          = destinations;
     this.extra                 = extra;
     this.usedRegs              = usedRegs;
     this.uniqueRegs            = uniqueRegs;
     this.finalRegs             = finalRegs;
     this.rematerializeableRegs = rematerializeableRegs;
 }
Beispiel #3
0
 public regInfo(slice <inputInfo> inputs = default, regMask clobbers = default, slice <outputInfo> outputs = default)
 {
     this.inputs   = inputs;
     this.clobbers = clobbers;
     this.outputs  = outputs;
 }
Beispiel #4
0
 public outputInfo(long idx = default, regMask regs = default)
 {
     this.idx  = idx;
     this.regs = regs;
 }
Beispiel #5
0
 public desiredState(slice <desiredStateEntry> entries = default, regMask avoid = default)
 {
     this.entries = entries;
     this.avoid   = avoid;
 }
Beispiel #6
0
 public regAllocState(ref ptr <Func> f = default, SparseTree sdom = default, slice <Register> registers = default, register numRegs = default, register SPReg = default, register SBReg = default, register GReg = default, regMask allocatable = default, slice <int> primary = default, slice <slice <liveInfo> > live = default, slice <desiredState> desired = default, slice <valState> values = default, ID sp = default, ID sb = default, slice <ptr <Value> > orig = default, slice <regState> regs = default, regMask nospill = default, regMask used = default, regMask tmpused = default, ref ptr <Block> curBlock = default, ref ptr <use> freeUseRecords = default, slice <slice <endReg> > endRegs = default, slice <slice <startReg> > startRegs = default, slice <slice <ID> > spillLive = default, map <ptr <Value>, bool> copies = default, ref ptr <loopnest> loopnest = default, slice <ptr <Block> > visitOrder = default)
 {
     this.f              = f;
     this.sdom           = sdom;
     this.registers      = registers;
     this.numRegs        = numRegs;
     this.SPReg          = SPReg;
     this.SBReg          = SBReg;
     this.GReg           = GReg;
     this.allocatable    = allocatable;
     this.primary        = primary;
     this.live           = live;
     this.desired        = desired;
     this.values         = values;
     this.sp             = sp;
     this.sb             = sb;
     this.orig           = orig;
     this.regs           = regs;
     this.nospill        = nospill;
     this.used           = used;
     this.tmpused        = tmpused;
     this.curBlock       = curBlock;
     this.freeUseRecords = freeUseRecords;
     this.endRegs        = endRegs;
     this.startRegs      = startRegs;
     this.spillLive      = spillLive;
     this.copies         = copies;
     this.loopnest       = loopnest;
     this.visitOrder     = visitOrder;
 }
Beispiel #7
0
 public Config(@string arch = default, long PtrSize = default, long RegSize = default, Types Types = default, blockRewriter lowerBlock = default, valueRewriter lowerValue = default, valueRewriter splitLoad = default, slice <Register> registers = default, regMask gpRegMask = default, regMask fpRegMask = default, regMask fp32RegMask = default, regMask fp64RegMask = default, regMask specialRegMask = default, slice <ptr <Register> > GCRegMap = default, sbyte FPReg = default, sbyte LinkReg = default, bool hasGReg = default, ref ptr <obj.Link> ctxt = default, bool optimize = default, bool noDuffDevice = default, bool useSSE = default, bool useAvg = default, bool useHmul = default, bool use387 = default, bool SoftFloat = default, bool Race = default, bool NeedsFpScratch = default, bool BigEndian = default, bool UseFMA = default)
 {
     this.arch           = arch;
     this.PtrSize        = PtrSize;
     this.RegSize        = RegSize;
     this.Types          = Types;
     this.lowerBlock     = lowerBlock;
     this.lowerValue     = lowerValue;
     this.splitLoad      = splitLoad;
     this.registers      = registers;
     this.gpRegMask      = gpRegMask;
     this.fpRegMask      = fpRegMask;
     this.fp32RegMask    = fp32RegMask;
     this.fp64RegMask    = fp64RegMask;
     this.specialRegMask = specialRegMask;
     this.GCRegMap       = GCRegMap;
     this.FPReg          = FPReg;
     this.LinkReg        = LinkReg;
     this.hasGReg        = hasGReg;
     this.ctxt           = ctxt;
     this.optimize       = optimize;
     this.noDuffDevice   = noDuffDevice;
     this.useSSE         = useSSE;
     this.useAvg         = useAvg;
     this.useHmul        = useHmul;
     this.use387         = use387;
     this.SoftFloat      = SoftFloat;
     this.Race           = Race;
     this.NeedsFpScratch = NeedsFpScratch;
     this.BigEndian      = BigEndian;
     this.UseFMA         = UseFMA;
 }