[llvm-commits] [llvm] r57765 - /llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp

Evan Cheng evan.cheng at apple.com
Sat Oct 18 13:12:21 PDT 2008


It shouldn't. Owen had fixed that problem.

Evan

On Oct 18, 2008, at 12:00 AM, Chris Lattner <clattner at apple.com> wrote:

>
> On Oct 17, 2008, at 10:18 PM, Evan Cheng wrote:
>
>> Author: evancheng
>> Date: Sat Oct 18 00:18:55 2008
>> New Revision: 57765
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=57765&view=rev
>> Log:
>> When creating intervals, leave min(1, numdefs) holes after each
>> instruction.
>
> Just as a sanity check:  extra holes won't affect any of the spill
> cost heuristics, right?
>
> -Chris
>
>>
>>
>> Modified:
>>   llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp
>>
>> Modified: llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp?rev=57765&r1=57764&r2=57765&view=diff
>>
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> ===
>> ===================================================================
>> --- llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp Sat Oct 18
>> 00:18:55 2008
>> @@ -130,9 +130,13 @@
>>      MIIndex += InstrSlots::NUM;
>>      FunctionSize++;
>>
>> -      // Insert an empty slot after every instruction.
>> -      MIIndex += InstrSlots::NUM;
>> -      i2miMap_.push_back(0);
>> +      // Insert min(1, numdefs) empty slots after every instruction.
>> +      unsigned Slots = I->getDesc().getNumDefs();
>> +      if (Slots == 0)
>> +        Slots = 1;
>> +      MIIndex += InstrSlots::NUM * Slots;
>> +      while (Slots--)
>> +        i2miMap_.push_back(0);
>>    }
>>
>>    // Set the MBB2IdxMap entry for this MBB.
>> @@ -732,8 +736,12 @@
>>          handleRegisterDef(MBB, MI, MIIndex, MO, i);
>>        }
>>      }
>> -
>> -      MIIndex += InstrSlots::NUM;
>> +
>> +      // Skip over the empty slots after each instruction.
>> +      unsigned Slots = MI->getDesc().getNumDefs();
>> +      if (Slots == 0)
>> +        Slots = 1;
>> +      MIIndex += InstrSlots::NUM * Slots;
>>
>>      // Skip over empty indices.
>>      while (MIIndex / InstrSlots::NUM < i2miMap_.size() &&
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list