gnu.trove.map.hash.TIntIntHashMap的实例源码

项目:metanome-algorithms    文件:PartialOrder.java   
public PartialOrder(DifferenceSets differenceSets) {
    TIntIntHashMap orderMap = new TIntIntHashMap();

    for (DifferenceSet differenceSet : differenceSets) {
        // increase the cover count for set columns
        long bitIndex = 0;
        while (bitIndex < differenceSet.getNumberOfColumns()) {
            long currentNextSetBit = differenceSet.nextSetBit(bitIndex);
            if (currentNextSetBit != -1) {
                bitIndex = currentNextSetBit + 1;
                orderMap.putIfAbsent((int) currentNextSetBit,0);
                orderMap.increment((int) currentNextSetBit);
            } else {
                bitIndex = differenceSet.getNumberOfColumns();
            }
        }
    }

    for (Integer index : orderMap.keys()) {
        this.add(new CoverOrder(index,orderMap.get(index)));
    }

    Collections.sort(this,Collections.reverseOrder());

}
项目:metanome-algorithms    文件:PartialOrder.java   
public PartialOrder(DifferenceSets differenceSets,long columnIndexToSkip) {
    TIntIntHashMap orderMap = new TIntIntHashMap();

    for (DifferenceSet differenceSet : differenceSets) {
        // increase the cover count for set columns
        long bitIndex = columnIndexToSkip;
        while (bitIndex < differenceSet.getNumberOfColumns()) {
            long currentNextSetBit = differenceSet.nextSetBit(bitIndex);
            if (currentNextSetBit != -1) {
                bitIndex = currentNextSetBit + 1;
                orderMap.putIfAbsent((int) currentNextSetBit,Collections.reverseOrder());

}
项目:xcc    文件:TwoAddrInstructionPass.java   
private boolean notUseAfterLastDef(int reg,MachineBasicBlock mbb,int dist,TIntIntHashMap distanceMap,OutParamWrapper<Integer> lastDef)
{
    lastDef.set(0);
    int lastUse = dist;
    for (DefUseChainIterator itr = mri.getRegIterator(reg); itr.hasNext();)
    {
        MachineOperand mo = itr.getOpearnd();
        MachineInstr mi = itr.getMachineInstr();
        if (!mi.getParent().equals(mbb))
            continue;
        if (!distanceMap.containsKey(mi.index()))
            continue;

        if (mo.isUse() && distanceMap.get(mi.index()) < lastUse)
            lastUse = distanceMap.get(mi.index());
        if (mo.isDef() && distanceMap.get(mi.index()) > lastDef.get())
            lastDef.set(distanceMap.get(mi.index()));
        itr.next();
    }
    return (!(lastUse > lastDef.get() && lastUse < dist));
}
项目:xcc    文件:RegAllocSimple.java   
/**
 * This method must be overridded by concrete subclass for performing
 * desired machine code transformation or analysis.
 *
 * @param mf
 * @return
 */
@Override
public boolean runOnMachineFunction(MachineFunction mf)
{
    this.mf = mf;
    tm = mf.getTarget();
    regInfo = tm.getRegisterInfo();
    instrInfo = tm.getInstrInfo();

    stackSlotForVirReg = new TIntIntHashMap();
    regUsed = new BitMap();
    regClassIdx = new TObjectIntHashMap<>();

    for (MachineBasicBlock mbb : mf.getBasicBlocks())
        allocateBasicBlock(mbb);

    stackSlotForVirReg.clear();
    return true;
}
项目:Avaritiaddons    文件:TileEntityExtremeAutoCrafter.java   
private void cleanInput()
{
    final TIntIntMap patternMap = new TIntIntHashMap(this.patternMap);
    for (int i = 0; i < 81 && !patternMap.isEmpty(); i++) {
        final ItemStack itemStack = itemStacks[i];
        final int key = MetaItem.get(itemStack);
        if (patternMap.containsKey(key)) {
            final int total = patternMap.get(key);
            final int dif = MathHelper.clamp_int(total,1,itemStack.stackSize);
            if (!itemStack.getItem().hasContainerItem(itemStack))
                itemStack.stackSize -= dif;
            if (dif - total == 0)
                patternMap.remove(key);
            else
                patternMap.put(key,total - dif);
            if (itemStack.stackSize == 0)
                itemStacks[i] = null;
        }
    }
}
项目:TopPI    文件:ExplorationStep.java   
/**
 * Start exploration on an abstract dataset
 */
public ExplorationStep(int minimumSupport,int k,Iterable<TransactionReader> source) {
    this.core_item = Integer.MAX_VALUE;
    this.selectChain = null;
    Holder<int[]> renamingHolder = new Holder<int[]>();
    DenseCounters firstCounter = new DenseCounters(minimumSupport,source.iterator(),renamingHolder);
    this.counters = firstCounter;
    TransactionsRenamingDecorator filtered = new TransactionsRenamingDecorator(source.iterator(),renamingHolder.value);
    this.dataset = new Dataset(this.counters,filtered,this.counters.getMinSupport(),this.counters.getMaxFrequent());
    this.candidates = this.counters.getExtensionsIterator();
    this.failedFPTests = new TIntIntHashMap();

    this.datasetProvider = new DatasetProvider(this);
    ExplorationStep.findUnclosedInsertionBound(firstCounter.getSupportCounts(),minimumSupport + k);
}
项目:TopPI    文件:DistCache.java   
private static TIntIntMap readIntIntMap(URI[] files,Configuration conf,String token,int size) throws IOException {
    TIntIntMap map = new TIntIntHashMap(size,Constants.DEFAULT_LOAD_FACTOR,-1,-1);
    for (URI file : files) {
        if (file.getPath().contains(token)) {
            SequenceFile.Reader reader = new SequenceFile.Reader(conf,Reader.file(new Path(file)));
            IntWritable key = new IntWritable();
            IntWritable value = new IntWritable();

            while (reader.next(key,value)) {
                map.put(key.get(),value.get());
            }

            reader.close();
        }
    }

    return map;
}
项目:TopPI    文件:PerItemTopKCollector.java   
public final TIntIntMap getTopKBounds() {
    final TIntIntMap output = new TIntIntHashMap(this.topK.size());
    this.topK.forEachEntry(new TIntObjectProcedure<PatternWithFreq[]>() {

        @Override
        public boolean execute(int k,PatternWithFreq[] v) {
            int s;
            PatternWithFreq p = v[v.length - 1];
            if (p == null) {
                s = -1;
            } else if (p.isClosed()) {
                s = p.getSupportCount() + 1;
            } else {
                s = p.getSupportCount();
            }
            output.put(k,s);
            return true;
        }
    });
    return output;
}
项目:dkpro-jwpl    文件:DumpVersionTroveIntKey.java   
@Override
public void initialize(Timestamp timestamp) {
    this.timestamp = Revision.compressTime(timestamp.getTime());

    /**
     * filled in revisions
     */
    pageIdRevMap = new HashMap<Integer,Long>();
    textIdPageIdMap = new TIntIntHashMap();

    /**
     * filled in pages
     */
    pPageIdNameMap = new HashMap<Integer,String>();
    pNamePageIdMap = new TIntIntHashMap();

    cNamePageIdMap = new TIntIntHashMap();
    rPageIdNameMap = new HashMap<Integer,String>();

    /**
     * filled in categories
     */
    disambiguations = new TIntHashSet();
}
项目:dkpro-jwpl    文件:DumpVersionJDKGeneric.java   
@Override
public void initialize(Timestamp timestamp) {
    this.timestamp = Revision.compressTime(timestamp.getTime());

    /**
     * filled in revisions
     */
    pageIdRevMap = new HashMap<Integer,String>();
    pNamePageIdMap = new HashMap<KeyType,Integer>();

    cNamePageIdMap = new HashMap<KeyType,Integer>();
    rPageIdNameMap = new HashMap<Integer,String>();

    /**
     * filled in categories
     */
    disambiguations = new TIntHashSet();
}
项目:lodreclib    文件:TextFileUtils.java   
public static void loadInputMetadataID(String metadata_file_index,String input_uri,TIntIntHashMap input_metadata_id){

    TObjectIntHashMap<String> metadata_index = new TObjectIntHashMap<String>();
    loadIndex(metadata_file_index,metadata_index);

    try{
        BufferedReader br = new BufferedReader(new FileReader(input_uri));
        String line = null;

        while((line=br.readLine()) != null){
            String[] vals = line.split("\t");
            if(metadata_index.containsKey(vals[1]));
                input_metadata_id.put(Integer.parseInt(vals[0]),metadata_index.get(vals[1]));
        }

        br.close();
    }
    catch(Exception e){
        e.printStackTrace();
    }

}
项目:lodreclib    文件:PropertyIndexedItemTree.java   
@Override
public void addBranches(String key,int value){

    if (!this.branches.containsKey(key))
        this.branches.put(key,new TIntIntHashMap());

    if(this.branches.get(key)!=null){
        if(this.branches.get(key).containsKey(value)){
            if(this.branches.get(key).get(value) < Integer.MAX_VALUE)
                this.branches.get(key).adjustValue(value,1);
        }
        else
            this.branches.get(key).put(value,1);
    }
    else{
        TIntIntHashMap tmp = new TIntIntHashMap();
        tmp.put(value,1);
        this.branches.put(key,tmp);
    }
}
项目:lodreclib    文件:ItemPathExtractorWorker.java   
/**
 * Constuctor
 */
public ItemPathExtractorWorker(SynchronizedCounter counter,TObjectIntHashMap<String> path_index,TIntObjectHashMap<String> inverse_path_index,ItemTree main_item,ArrayList<ItemTree> items,TIntObjectHashMap<String> props_index,boolean inverseProps,TextFileManager textWriter,StringFileManager pathWriter,boolean select_top_path,TIntIntHashMap input_metadata_id,boolean computeInversePaths,TIntObjectHashMap<TIntHashSet> items_link){

    this.counter = counter;
    this.path_index = path_index;
    this.main_item = main_item;
    this.items = items;
    this.props_index = props_index;
    this.inverseProps = inverseProps;
    this.textWriter = textWriter;
    this.pathWriter = pathWriter;
    this.select_top_path = select_top_path;
    this.input_metadata_id = input_metadata_id;
    this.computeInversePaths = computeInversePaths;
    this.items_link = items_link;
    this.inverse_path_index = inverse_path_index;
}
项目:SRLParser    文件:Evaluator.java   
public Evaluator(Options options,DependencyPipe pipe)
{
    uas = las = tot = 0;
    corr = totp = totg = 0;
    whole = nsents = 0;
    vis = 0;
    learnLabel = options.learnLabel;

    numArgs = pipe.smnFactory.numSemanticLabels;
    argLabels = pipe.args;
    timeStamps = new int[numArgs];
    argFreqCnts = new int[numArgs];
    argAppearCnts = new int[numArgs];

    goldlengthCounts = new TIntIntHashMap();
    predlengthCounts = new TIntIntHashMap();
    corrPL = new int[15];
    totPL = new int[15];
    corrGL = new int[15];
    totGL = new int[15];
}
项目:SRLParser    文件:DependencyPipe.java   
private void dumpPathStats(TObjectIntHashMap<String> pathCounts,TIntIntHashMap pathlengthCounts) throws IOException {

    BufferedWriter writer = new BufferedWriter(new FileWriter("path.info"));
    for (int length : pathlengthCounts.keys()) {
        writer.write(""+length);
        writer.write("\t");
        writer.write(""+pathlengthCounts.get(length));
        writer.write("\n");
    }
    for (Object obj : pathCounts.keys()) {
        String key = (String) obj;
        writer.write(key);
        writer.write("\t");
        writer.write(""+pathCounts.get(key));
        writer.write("\n");
    }
    writer.close();
}
项目:wikit    文件:FactorGraph.java   
private void removeFromVariableCaches (Variable victim)
{
   Set survivors = new THashSet(variablesSet ());
   survivors.remove (victim);

   int vi = 0;
   TIntIntHashMap dict = new TIntIntHashMap (survivors.size ());
   // dict.setDefaultValue (-1);  No longer supported,but this.getIndex() written to avoid need for this.
   my2global = new int[survivors.size ()];

   for (Iterator it = survivors.iterator (); it.hasNext();) {
     Variable var = (Variable) it.next ();
     int gvi = var.getIndex ();
     dict.put (gvi,vi);
     my2global [vi] = gvi;
   }

   projectionMap = dict;
   numNodes--;  // do this at end b/c it affects getVertexSet()
 }
项目:wikit    文件:MultinomialHMM.java   
private void recacheStateTopicDistribution(int state,TIntIntHashMap topicCounts) {
int[] currentStateTopicCounts = stateTopicCounts[state];
double[][] currentStateCache = topicLogGammaCache[state];
double[] cache;

for (int topic: topicCounts.keys()) {
    cache = currentStateCache[topic];

    cache[0] = 0.0;
    for (int i=1; i < cache.length; i++) {
                   cache[i] =
                       cache[ i-1 ] +
                       Math.log( alpha[topic] + i - 1 + 
              currentStateTopicCounts[topic] );
    }

}

docLogGammaCache[state][0] = 0.0;
for (int i=1; i < docLogGammaCache[state].length; i++) {
               docLogGammaCache[state][i] =
                   docLogGammaCache[state][ i-1 ] +
                   Math.log( alphaSum + i - 1 + 
              stateTopicTotals[state] );
}
   }
项目:wikit    文件:LDAHyper.java   
private void initializeForTypes (Alphabet alphabet) {
    if (this.alphabet == null) {
        this.alphabet = alphabet;
        this.numTypes = alphabet.size();
        this.typeTopicCounts = new TIntIntHashMap[numTypes];
        for (int fi = 0; fi < numTypes; fi++) 
            typeTopicCounts[fi] = new TIntIntHashMap();
        this.betaSum = beta * numTypes;
    } else if (alphabet != this.alphabet) {
        throw new IllegalArgumentException ("Cannot change Alphabet.");
    } else if (alphabet.size() != this.numTypes) {
        this.numTypes = alphabet.size();
        TIntIntHashMap[] newTypeTopicCounts = new TIntIntHashMap[numTypes];
        for (int i = 0; i < typeTopicCounts.length; i++)
            newTypeTopicCounts[i] = typeTopicCounts[i];
        for (int i = typeTopicCounts.length; i < numTypes; i++)
            newTypeTopicCounts[i] = new TIntIntHashMap();
        // TODO AKM July 18:  Why wasn't the next line there previously?
        // this.typeTopicCounts = newTypeTopicCounts;
        this.betaSum = beta * numTypes;
    }   // else,nothing changed,nothing to be done
}
项目:wikit    文件:NPTopicModel.java   
/** @param alpha this parameter balances the local document topic counts with 
 *                the global distribution over topics.
 *  @param gamma this parameter is the weight on a completely new,never-before-seen topic
 *                in the global distribution.
 *  @param beta  this parameter controls the variability of the topic-word distributions
 */
public NPTopicModel (double alpha,double gamma,double beta) {

    this.data = new ArrayList<TopicAssignment>();
    this.topicAlphabet = AlphabetFactory.labelAlphabetOfSize(1);

    this.alpha = alpha;
    this.gamma = gamma;
    this.beta = beta;
    this.random = new Randoms();

    tokensPerTopic = new TIntIntHashMap();
    docsPerTopic = new TIntIntHashMap();

    formatter = NumberFormat.getInstance();
    formatter.setMaximumFractionDigits(5);

    logger.info("Non-Parametric LDA");
}
项目:wikit    文件:FeatureDocFreqPipe.java   
public Instance pipe(Instance instance) {

    TIntIntHashMap localCounter = new TIntIntHashMap();

    if (instance.getData() instanceof FeatureSequence) {

        FeatureSequence features = (FeatureSequence) instance.getData();

        for (int position = 0; position < features.size(); position++) {
            localCounter.adjustOrPutValue(features.getIndexAtPosition(position),1);
        }

    }
    else {
        throw new IllegalArgumentException("Looking for a FeatureSequence,found a " + 
                                           instance.getData().getClass());
    }

    for (int feature: localCounter.keys()) {
        counter.increment(feature);
    }

    numInstances++;

    return instance;
}
项目:openimaj    文件:HandWritingNeuralNetSANDIA.java   
/**
 * @throws IOException
 *             Load X input and y output from {@link #INPUT_LOCATION} and
 *             {@link #OUTPUT_LOCATION}
 */
public HandWritingNeuralNetSANDIA() throws IOException {
    final BufferedReader xReader = new BufferedReader(new InputStreamReader(
            HandWritingNeuralNetSANDIA.class.getResourceAsStream(INPUT_LOCATION)));
    final BufferedReader yReader = new BufferedReader(new InputStreamReader(
            HandWritingNeuralNetSANDIA.class.getResourceAsStream(OUTPUT_LOCATION)));
    this.xVals = fromCSV(xReader,5000);
    this.yVals = fromCSV(yReader,5000);

    examples = new TIntIntHashMap();
    this.tests = new TIntObjectHashMap<List<IndependentPair<Vector,Vector>>>();
    prepareDataCollection();
    learnNeuralNet();
    testNeuralNet();
    // new HandWritingInputDisplay(xVals);
}
项目:openimaj    文件:UniformRandomAnnotator.java   
@Override
public void train(List<? extends Annotated<OBJECT,ANNOTATION>> data) {
    final HashSet<ANNOTATION> annotationsSet = new HashSet<ANNOTATION>();
    final TIntIntHashMap nAnnotationCounts = new TIntIntHashMap();
    int maxVal = 0;

    for (final Annotated<OBJECT,ANNOTATION> sample : data) {
        final Collection<ANNOTATION> annos = sample.getAnnotations();
        annotationsSet.addAll(annos);
        nAnnotationCounts.adjustOrPutValue(annos.size(),1);

        if (annos.size() > maxVal)
            maxVal = annos.size();
    }

    annotations = new ArrayList<ANNOTATION>(annotationsSet);

    rnd = new Uniform(0,annotations.size() - 1,new MersenneTwister());

    numAnnotations.train(data);
}
项目:openimaj    文件:PriorChooser.java   
@Override
public <O,A> void train(List<? extends Annotated<O,A>> data) {
    TIntIntHashMap nAnnotationCounts = new TIntIntHashMap();
    int maxVal = 0;

    for (Annotated<O,A> sample : data) {
        Collection<A> annos = sample.getAnnotations();

        nAnnotationCounts.adjustOrPutValue(annos.size(),1);

        if (annos.size()>maxVal) maxVal = annos.size();
    }

    //build distribution and rng for the number of annotations
    double [] distr = new double[maxVal+1];
    for (int i=0; i<=maxVal; i++) 
        distr[i] = nAnnotationCounts.get(i);
    numAnnotations = new EmpiricalWalker(distr,Empirical.NO_INTERPOLATION,new MersenneTwister());
}
项目:openimaj    文件:ClusterAnalyserUtils.java   
/**
 * @param is
 * @param invCor
 * @return the cluster with the maximum
 */
public static IntIntPair findMaxClassCount(int[] is,Map<Integer,Integer> invCor) {
    TIntIntHashMap classCounts = new TIntIntHashMap();
    int max = 0;
    int c = 0;
    for (int i : is) {
        Integer c_i = invCor.get(i);
        if(c_i == null) continue;
        int count = classCounts.adjustOrPutValue(c_i,1);
        if(count > max){
            max = count;
            c = c_i;
        }
    }
    return IntIntPair.pair(c,max);
}
项目:fnlp    文件:Similarity.java   
public  void similarity() throws InterruptedException { 
    System.out.println("相似度");
    ThreadPoolExecutor pool = new ThreadPoolExecutor(numThreads,numThreads,1000,TimeUnit.SECONDS,new ArrayBlockingQueue<Runnable>(capacity ));
    similarityMap = new TIntIntHashMap[docs.size()];

    Iterator<Entry<String,TIntArrayList>> iterator = 
            locationMap.entrySet().iterator();


    while(iterator.hasNext()) {
        if(pool.getQueue().remainingCapacity()==0){
            Thread.sleep(10);
            continue;
        }
        Entry<String,TIntArrayList> entry = iterator.next();

        TIntArrayList al = entry.getValue();
        CalcSimilarity cs = new CalcSimilarity(al);
        pool.execute(cs);
    }
    while(pool.getActiveCount()>0){
        Thread.sleep(10);
    }
    pool.shutdown();
}
项目:LaToe    文件:DumpVersionTroveIntKey.java   
@Override
public void initialize(Timestamp timestamp) {
    this.timestamp = Revision.compressTime(timestamp.getTime());

    /**
     * filled in revisions
     */
    pageIdRevMap = new HashMap<Integer,String>();

    /**
     * filled in categories
     */
    disambiguations = new TIntHashSet();
}
项目:LaToe    文件:DumpVersionJDKGeneric.java   
@Override
public void initialize(Timestamp timestamp) {
    this.timestamp = Revision.compressTime(timestamp.getTime());

    /**
     * filled in revisions
     */
    pageIdRevMap = new HashMap<Integer,String>();

    /**
     * filled in categories
     */
    disambiguations = new TIntHashSet();
}
项目:jlcm    文件:ExplorationStep.java   
/**
 * Start exploration on a dataset contained in a file.
 * 
 * @param minimumSupport
 * @param path
 *            to an input file in ASCII format. Each line should be a
 *            transaction containing space-separated item IDs.
 */
public ExplorationStep(int minimumSupport,String path) {
    this.parent = null;
    this.core_item = Integer.MAX_VALUE;
    this.selectChain = null;
    this.childrenThreshold = minimumSupport;

    FileReader reader = new FileReader(path);
    this.counters = new Counters(minimumSupport,reader);
    reader.close(this.counters.renaming);

    this.pattern = this.counters.closure;

    this.dataset = new Dataset(this.counters,reader);

    this.candidates = this.counters.getExtensionsIterator();

    this.failedFPTests = new TIntIntHashMap();
}
项目:onprom    文件:EfficientHashMap.java   
public EfficientHashMap(int initCapacity){

    map = new TIntIntHashMap(initCapacity);
    collisionMap = new TObjectIntHashMap<String>(initCapacity);
    values = new ArrayList<V>(initCapacity);
    counter = 0;
}
项目:onprom    文件:EfficientHashMap.java   
public EfficientHashMap(){

    map = new TIntIntHashMap();
    collisionMap = new TObjectIntHashMap<String>();
    values = new ArrayList<V>();
    counter = 0;
}
项目:xcc    文件:TwoAddrInstructionPass.java   
private boolean commuteInstruction(
        OutParamWrapper<Integer> mi,int regC,TIntIntHashMap distanceMap)
{
    MachineInstr newMI = tii.commuteInstruction(mbb.getInstAt(mi.get()));

    if (newMI== null)
    {
        return false;
    }

    if (!newMI.equals(mbb.getInstAt(mi.get())))
    {
        if (lv != null)
            lv.replaceKillInstruction(regC,mbb.getInstAt(mi.get()),newMI);

        mbb.insert(mi.get(),newMI);
        mbb.remove(mi.get());
        mi.set(newMI.index());
        distanceMap.put(newMI.index(),dist);
    }

    return true;
}
项目:xcc    文件:TwoAddrInstructionPass.java   
private boolean isProfitableToCommute(int regB,MachineInstr mi,TIntIntHashMap distanceMap)
{
    // Determine if it's profitable to commute this two address instruction. In
    // general,we want no uses between this instruction and the definition of
    // the two-address register.
    // e.g.
    // %reg1028<def> = EXTRACT_SUBREG %reg1027<kill>,1
    // %reg1029<def> = MOV8rr %reg1028
    // %reg1029<def> = SHR8ri %reg1029,7,%EFLAGS<imp-def,dead>
    // insert => %reg1030<def> = MOV8rr %reg1028
    // %reg1030<def> = ADD8rr %reg1028<kill>,%reg1029<kill>,dead>
    // In this case,it might not be possible to coalesce the second MOV8rr
    // instruction if the first one is coalesced. So it would be profitable to
    // commute it:
    // %reg1028<def> = EXTRACT_SUBREG %reg1027<kill>,dead>
    // insert => %reg1030<def> = MOV8rr %reg1029
    // %reg1030<def> = ADD8rr %reg1029<kill>,%reg1028<kill>,dead>
    if (!mi.killsRegister(regC))
        return false;

    OutParamWrapper<Integer> x = new OutParamWrapper<>(0);
    if (notUseAfterLastDef(regC,mbb,dist,distanceMap,x))
        return false;

    int lastDefC = x.get();

    x.set(0);
    if (notUseAfterLastDef(regB,x))
        return false;
    int lastDefB = x.get();

    return lastDefB !=0 && lastDefC != 0 && lastDefC > lastDefB;
}
项目:xcc    文件:TwoAddrInstructionPass.java   
private boolean isProfitableToReMat(int reg,TargetRegisterClass rc,MachineInstr defMI,int loc,TIntIntHashMap distanceMap)
{
    boolean otherUse = false;
    for (DefUseChainIterator itr = mri.getUseIterator(reg); itr.hasNext(); )
    {
        MachineOperand useMO = itr.getOpearnd();
        MachineInstr useMI = itr.getMachineInstr();
        MachineBasicBlock useBB = useMI.getParent();
        if (useBB.equals(mbb))
        {
            int idx = useMI.index();
            if (distanceMap.containsKey(idx) && distanceMap.get(idx) == loc)
            {
                otherUse = true;
                if (isTwoAddrUse(useMI,reg))
                    return true;
            }
        }
    }

    if (otherUse)
        return false;

    return mbb.equals(defMI.getParent());
}
项目:xcc    文件:EdgeBundles.java   
@Override
public boolean runOnMachineFunction(MachineFunction mf)
{
    this.mf = mf;
    ec = new IntEqClasses(mf.getNumBlockIDs()*2);
    for (MachineBasicBlock mbb : mf.getBasicBlocks())
    {
        int outEdge = mbb.getNumber()*2 + 1;
        // Join the outgoing
        for (Iterator<MachineBasicBlock> itr = mbb.succIterator(); itr.hasNext(); )
        {
            ec.join(outEdge,itr.next().getNumber()*2);
        }
    }
    blocks = new TIntArrayList[getNumBundles()];
    for (int i = 0,e; i < getNumBundles(); i++)
        blocks[i] = new TIntArrayList();

    groupID = new TIntIntHashMap();
    for (int i = 0; i < ec.getNumIds(); i++)
    {
        int leading = ec.findLeader(i);
        if (!groupID.containsKey(leading))
            groupID.put(leading,nextID++);
    }

    for (int i = 0,e = mf.getNumBlockIDs(); i < e; i++)
    {
        int b0 = getBundles(i,false);
        int b1 = getBundles(i,true);
        blocks[b0].add(i);
        if (b1 != b0)
            blocks[b1].add(i);
    }
    nextID = 0;
    return false;
}
项目:xcc    文件:VirtRegMap.java   
public VirtRegMap(MachineFunction mf)
{
    this.mf = mf;
    v2pMap = new TIntIntHashMap();
    v2StackSlotMap = new TIntIntHashMap();
    mi2vMap = new SetMultiMap<>();
}
项目:morpheus-core    文件:SparseArrayOfInts.java   
/**
 * Constructor
 * @param length    the length for this array
 * @param defaultValue  the default value for array
 */
SparseArrayOfInts(int length,Integer defaultValue) {
    super(Integer.class,ArrayStyle.SPARSE,false);
    this.length = length;
    this.defaultValue = defaultValue != null ? defaultValue : 0;
    this.values = new TIntIntHashMap((int)Math.max(length * 0.5,10d),0.8f,this.defaultValue);
}
项目:morpheus-core    文件:SparseArrayWithIntCoding.java   
/**
 * Constructor
 * @param length        the length for this array
 * @param defaultValue  the default value for array
 * @param coding        the coding for this array
 */
SparseArrayWithIntCoding(int length,T defaultValue,IntCoding<T> coding) {
    super(coding.getType(),false);
    this.length = length;
    this.coding = coding;
    this.defaultValue = defaultValue;
    this.defaultCode = coding.getCode(defaultValue);
    this.codes = new TIntIntHashMap((int)Math.max(length * 0.5,defaultCode);
}

相关文章

买水果
比较全面的redis工具类
gson 反序列化到多态子类
java 版本的 mb_strwidth
JAVA 反转字符串的最快方法,大概比StringBuffer.reverse()性...
com.google.gson.internal.bind.ArrayTypeAdapter的实例源码...