Example #1
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;
 }
Example #2
0
 // outerinner records that outer contains inner
 public static void outerinner(this SparseTree sdom, ptr <loop> _addr_outer, ptr <loop> _addr_inner)
 {
     ref loop outer = ref _addr_outer.val;
Example #3
0
 public Func(ref ptr <Config> Config = default, ref ptr <Cache> Cache = default, Frontend fe = default, ref ptr <pass> pass = default, @string Name = default, ref ptr <types.Type> Type = default, slice <ptr <Block> > Blocks = default, ref ptr <Block> Entry = default, ref ptr <Value> LastDeferExit = default, idAlloc bid = default, idAlloc vid = default, map <@string, writeSyncer> logfiles = default, ref ptr <HTMLWriter> HTMLWriter = default, bool DebugTest = default, bool PrintOrHtmlSSA = default, map <@string, long> ruleMatches = default, bool scheduled = default, bool laidout = default, bool NoSplit = default, slice <Location> RegAlloc = default, map <LocalSlot, slice <ptr <Value> > > NamedValues = default, slice <LocalSlot> Names = default, slice <ptr <Block> > WBLoads = default, ref ptr <Value> freeValues = default, ref ptr <Block> freeBlocks = default, slice <ptr <Block> > cachedPostorder = default, slice <ptr <Block> > cachedIdom = default, SparseTree cachedSdom = default, ref ptr <loopnest> cachedLoopnest = default, ref ptr <xposmap> cachedLineStarts = default, auxmap auxmap = default, map <long, slice <ptr <Value> > > constants = default)
 {
     this.Config           = Config;
     this.Cache            = Cache;
     this.fe               = fe;
     this.pass             = pass;
     this.Name             = Name;
     this.Type             = Type;
     this.Blocks           = Blocks;
     this.Entry            = Entry;
     this.LastDeferExit    = LastDeferExit;
     this.bid              = bid;
     this.vid              = vid;
     this.logfiles         = logfiles;
     this.HTMLWriter       = HTMLWriter;
     this.DebugTest        = DebugTest;
     this.PrintOrHtmlSSA   = PrintOrHtmlSSA;
     this.ruleMatches      = ruleMatches;
     this.scheduled        = scheduled;
     this.laidout          = laidout;
     this.NoSplit          = NoSplit;
     this.RegAlloc         = RegAlloc;
     this.NamedValues      = NamedValues;
     this.Names            = Names;
     this.WBLoads          = WBLoads;
     this.freeValues       = freeValues;
     this.freeBlocks       = freeBlocks;
     this.cachedPostorder  = cachedPostorder;
     this.cachedIdom       = cachedIdom;
     this.cachedSdom       = cachedSdom;
     this.cachedLoopnest   = cachedLoopnest;
     this.cachedLineStarts = cachedLineStarts;
     this.auxmap           = auxmap;
     this.constants        = constants;
 }
Example #4
0
 public loopnest(ref ptr <Func> f = default, slice <ptr <loop> > b2l = default, slice <ptr <Block> > po = default, SparseTree sdom = default, slice <ptr <loop> > loops = default, bool hasIrreducible = default, bool initializedChildren = default, bool initializedDepth = default, bool initializedExits = default)
 {
     this.f                   = f;
     this.b2l                 = b2l;
     this.po                  = po;
     this.sdom                = sdom;
     this.loops               = loops;
     this.hasIrreducible      = hasIrreducible;
     this.initializedChildren = initializedChildren;
     this.initializedDepth    = initializedDepth;
     this.initializedExits    = initializedExits;
 }
Example #5
0
 public partitionByDom(slice <ptr <Value> > a = default, SparseTree sdom = default)
 {
     this.a    = a;
     this.sdom = sdom;
 }